以下にサンプルのコードを示す.以下のコードや,Oracle Javaのデッドロックの参考例,哲学者の食事問題などを参考にしてほしい.
class Friend extends Thread implements Runnable {
private Friend myFriend;
private String name;
public Friend( final String name ) {
this.name = name;
}
public synchronized void vow() {
System.out.printf( "Hey my friend %s..\n", name );
myFriend.vow();
}
public void run() {
vow();
}
public void setMyFriend( Friend myFriend ) {
this.myFriend = myFriend;
}
public static void main( String args[] ) {
Friend me = new Friend( "John Flansburgh" );
Friend dude = new Friend( "John Linnell" );
me.setMyFriend( dude );
dude.setMyFriend( me );
me.start();
dude.start();
System.out.println( "Have a nice day." );
}
}
0 件のコメント:
コメントを投稿