# Task management

### Number of tasks, tasks id's

PCJ library offers two useful methods:

```java
public static int PCJ.threadCount()
```

which returns number of tasks running and

```java
public static int PCJ.myId()
```

which returns id of the task. Task id is integer value of the range from 0 to `PCJ.threadCount()-1`.

### Task synchronization

PCJ offers PCJ.barrier() method which allows to synchronize all tasks. While this line is reached, the execution is stopped until all tasks reach the synchronization line.

```java
public static void PCJ.barrier()
```

Remember, that this line has to be executed by all tasks. The user can provide argument to `barrier()` which is integer id of the task to synchronize.

```java
public static void PCJ.barrier(int id)
```

In this case two tasks are synchronized: one with the given id and one which starts `barrier()`method. Please note that both tasks have to execute method.
