Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.concurrent.locks.Lock;
- public class Worker implements Runnable {
- String name = null;
- Lock lock = null;
- public Worker(String name, Lock lock) {
- this.name = name;
- this.lock = lock;
- }
- @Override
- public void run() {
- while (true) {
- lock.lock();
- try {
- Thread.sleep(1000);
- } catch (InterruptedException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- System.out.println(name);
- lock.unlock();
- }
- }
- }
- import java.util.concurrent.locks.Lock;
- import java.util.concurrent.locks.ReentrantLock;
- public class StartWorkers {
- private void run(int n) {
- Lock lock = new ReentrantLock(true);
- Worker[] workers = new Worker[n];
- for (int i = 0; i < n; ++i) {
- workers[i] = new Worker(String.valueOf(i), lock);
- }
- Thread[] threads = new Thread[n];
- for (int i = 0; i < n; ++i) {
- threads[i] = new Thread(workers[i]);
- threads[i].start();
- }
- }
- public static void main(String[] args) {
- StartWorkers startWorkers = new StartWorkers();
- startWorkers.run(5);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement