J2ME游戏开发第四章多线程.ppt
J2ME游戏开发,第四章 多线程,多线程,之前应该有学过,但是呢,在J2ME里还是很重要的,所以拿出来再讲一下。让应用程序看起来能同时做好几件事情,应该怎么办呢?,列位,这还用想个啥子来,看上面不就知道了吗,什么是多线程,提到线程,就不能不提一下进程,什么是进程呢?运行桌面上的一个软件,打开任务管理器,就会发现有“进程”选项卡,那么这个软件呢,就可以看成是一个进程。进程占据着特定的一片内存区域。线程是包含在进程里面的,一个软件可以做好几件事情,那么每一件事情都是由一个线程来管理。线程可以共享进程占据的那片内存区域。,什么是多线程,线程是程序中一个单一的顺序控制流程。在单个程序中同时运行多个线程完成不同的工作,称为多线程。,线程实现的方法,方法1:Thread继承法定义一个类,继承Thread类重写run()方法对象调用start()方法方法2:Runnable实现法定义一个类,实现Runnable接口重写run()方法定义一个Thread对象,将该对象传进去,调用start()方法,两种方法的区别,都能实现相同的功能不同之处在于Runnable共享一个变量-Code载入不同的Runnable对象即可区别-Code,多线程举例,例子:界面上有两个StringItem,要求第一个上面的数字每隔1秒钟变化,第二个上面的数字每隔2秒钟变化。可以看出来,这两个StringItem之间没有任何关系,但是要它们同时变化的话,就需要为每个StringItem开一个线程-Code,线程安全问题:线程协作,问题1:线程1负责1到1000的求和计算,线程2负责得到最后的运算结果。期间可能会发生什么问题呢?不知何时获取结果呀?等待一个线程运行完毕:join()方法-Code,线程安全问题:线程同步,问题2:线程1和线程2都同时负责访问一个资源,会发生什么问题呢?案例:有10张票,现有2个线程负责卖票,要求票数为0时能够给予提示。-Code线程同步的关键字是:synchronized,