「Java入門」スレッドに対してRead(読み取る)-Write(書き込む) Lockの処理サンプルコード

処理コード:

import java.util.Random;
public class WriteReadLockStartnews24 {
public static void main(String[] args) {
// TODO Auto-generated method stub
final Queue1 q3 = new Queue1();
for(int i =0 ;i<3;i++)
{ new Thread()
{
public void run(){
while(true)
{
q3.put(new Random().nextInt(1000));
}
}}.start();
new Thread()
{
public void run(){
while(true)
{
q3.get();
}
}}.start();

}}

}
class Queue_Startnews24{
private Object data =null;
public void put(Object data){
System.out.println(Thread.currentThread().getName()+"is ready to put data");
try {
Thread.sleep((long)(Math.random()*1000));
this.data = data;
System.out.println(Thread.currentThread().getName()+"has put the data :"+data);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
void get(){
System.out.println(Thread.currentThread().getName()+"がデータを読む取る!");
try {
Thread.sleep((long)(Math.random()*1000));
System.out.println(Thread.currentThread().getName()+"has read the data: “+data);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

}

Java

Posted by arkgame