以下にサンプルのコードを示す.以下のコードや,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 件のコメント:
コメントを投稿