wait・notify・notifyallメソッドサンプル|Javaから楽しく学ぶ!ゲームプログラミング専門学校

Javaから楽しく学ぶ!ゲームプログラミング専門学校

ゲームプログラミングとはその名のとおりゲームのプログラムを作ることを指します。『Javaから楽しく学ぶ!ゲームプログラミング専門学校』ではゲームプログラミングについて、実際にゲームプログラムをJAVAプログラミング言語を使用し、作成していきながら詳しく解説していきます。

wait・notify・notifyallメソッドサンプル

 

【動作内容】
Javaアプレット画面をクリックするごとに表示数字を加算

【解説記事】
スレッドの同期(wait・notify・notifyall)

【ソースコード】
import java.applet.*;
import java.awt.Graphics;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;

public class WaitSample extends Applet implements Runnable, MouseListener{
private Thread th;
private int width;
private int height;
private int count;
private String countString = "";

public void init(){
width = getSize().width; //Javaアプレット画面横幅サイズ取得
height = getSize().height; //Javaアプレット画面縦幅サイズ取得
addMouseListener(this); //マウスイベントを受け取り準備
}
public void start(){
count = 0;
th = new Thread(this);
th.start();
}
public void mouseClicked(MouseEvent e){
}
public void mouseEntered(MouseEvent e){
}
public void mouseExited(MouseEvent e){
}
public void mousePressed(MouseEvent e){
this.reStart();
}
public void mouseReleased(MouseEvent e){
}
synchronized public void reStart(){
notifyAll();
}
synchronized public void addCount(){
count++;
try{
wait();
}catch(Exception e){}
}
public void run(){
for(int i = 0; i < 5; i++){
addCount();
repaint();
}
countString = "スレッド終了";
}
public void paint(Graphics g){
g.drawString("" + count, 50,50);
g.drawString(countString, 20,60);
}
}

トラックバック:0Edit
Copyright © Javaから楽しく学ぶ!ゲームプログラミング専門学校 All Rights Reserved.
当サイトのテキストや画像等すべての転載転用・商用販売を固く禁じます