---------------------- ASP.Net+Android+IOS开发</a>、.Net培训、期待与您交流! ----------------------
想让一个程序执行一个任务的时候,同时执行另一个或多个任务,这时候就要用到多线程技术。
java中多线程方法:
继承Thread类,并覆盖run方法,然后通过调用start方法让线程开始执行run方法里的任务。new Thread(){public void run(){........}}.start();
建立Thread类的对象,同时给该对象一个实现了Runnable接口类的对象。再调用该Thread类对象的start方法。线程执行Thread对象的run方法时,会调用Runnable子类对象的run方法(Thread里的run没覆盖)。 //一般用这种方法。用面向对象的思想将线程要执行的任务看成是Runnable子类对象。
线程的状态:
被创建
临时阻塞 具备执行资格,但不具备执行权。( CPU在执行任务时,是在各个线程(线程具备执行资格)中切换执行的。)
运行 具备执行资格,具备执行权。CPU当前正在运行的线程。
冻结 线程由于一些操作释放执行权和执行资格。(当线程醒来,就可能进入2,3状态)
消亡
如果多个线程之间操作相同共享数据,则要通过synchronized或Lock来避免产生数据不一致的安全问题(同步代码块)。
线程之间同步代码块中的锁对象要一样
同步代码块效率会稍低。
---------------------- ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------