スレッドを使用して基本的なプログラムを作成しようとしています。t1 と t2 の 2 つのスレッドがあり、x をロックしているとします。ロック x が t1 に割り当てられていると仮定します。ロック x が t1 に割り当てられているために t2 が処理できない状況はいつですか? ロック/スレッドがどのように機能するかを示す簡単な例を作成しようとしています。
この件についてご支援いただければ幸いです。
これは私がこれまでに得たものです:
クラス・スカイウォーカー:
import java.util.*;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public class Skywalker{
public static void main(String args[]){
Thread t1 = new Thread("station 1");
Thread t2 = new Thread("station 2");
t1.start();
t2.start();
}
}
ダース級:
import java.util.Random;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
public class Darth implements Runnable{
String stationName;
Lock x = new ReentrantLock();
Random r = new Random();
public Darth(String name){
stationName = name;
}
public void run(){
try{
x.lock();
System.out.println(stationName + "is working");
sleep(randomTime);
x.unlock();
} catch(Exception e) {
}
}
}