使用 RuPengGame游戏引擎包 建立游戏窗体 如鹏游戏引擎包下载地址 Thread Runnable 卖票实例
package com.swift; import com.rupeng.game.GameCore;//导入游戏引擎包
//实现Runnable接口 public class Game_RuPeng implements Runnable { public static void main(String[] args) { GameCore.start(new Game_RuPeng());//生成游戏对象,并让引擎启动它 } //覆写接口中的run()方法,控制游戏 @Override public void run() { GameCore.setGameSize(1024, 768);//设置游戏窗口大小 GameCore.setGameTitle("游戏窗口");//设置游戏窗口标题 GameCore.pause(3000);//设置游戏窗口停留3秒 } }
如鹏游戏引擎包下载地址
链接: https://pan.baidu.com/s/1eSKo8KE 密码: n32z
关于 implements Runnable接口,用下面例子说明
以卖票程序为例,通过Thread类完成:
package com.swift; class SellTickets extends Thread { private int ticket = 10; public void run() { for (int i = 0; i < 20; i++) { if (this.ticket > 0) { System.out.println("卖票:ticket" + this.ticket--); } } } public static void main(String[] args) { SellTickets mt1 = new SellTickets(); SellTickets mt2 = new SellTickets(); SellTickets mt3 = new SellTickets(); mt1.start();// 每个线程都各卖了10张,共卖了30张票 mt2.start();// 但实际只有10张票,每个线程都卖自己的票 mt3.start();// 没有达到资源共享 } }
如果用Runnable就可以实现资源共享,下面看例子:
package com.swift; class SellTickets2 implements Runnable { private int ticket = 10; public void run() { for (int i = 0; i < 20; i++) { if (this.ticket > 0) { System.out.println("卖票:ticket" + this.ticket--); } } } public static void main(String[] args) { SellTickets2 mt=new SellTickets2(); new Thread(mt).start();//同一个mt,但是在Thread中就不可以,如果用同一 new Thread(mt).start();//个实例化对象mt,就会出现异常 new Thread(mt).start(); } }
虽然现在程序中有三个线程,但是一共卖了10张票,也就是说使用Runnable实现多线程可以达到资源共享目的。
在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的。一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限。
Never waste time any more, Never old man be a yong man