标签:
1.进程和线程
一个进程中至少有一个线程。
2.什么是多线程?
多线程是指一个进程在执行过程中可以产生多个线程,这些线程可以同时存在,同时运行,一个进程可能包含了多个同时执行的线程。如,迅雷下载,可以下载多个任务,就是多线程。
package org.lxh.demo9.threaddemo; class MyThread extends Thread { private String name; public MyThread(String name) //通过构造方法设置属性内容 { this.name =name; } public void run(){ //覆写Thread类中的run()方法 for (int i=0;i<10;i++) { System.out.println(name+"运行,i="+i); } } } public class ThreadDemo2 { public static void main(String[] args) { MyThread mt1= new MyThread("线程A"); //创建好了一个线程 MyThread mt2= new MyThread("线程B"); mt1.start(); //启动多线程,并执行该线程的run方法,若用mt1.run();仅仅是对象调用方法,而线程创建了,并没有运行。等到把run方法执行完了,再执行下一个。 mt2.start(); //启动多线程 } }
4.sleep()和wait()比较
对于sleep()方法,我们首先要知道该方法是属于Thread类中的。而wait()方法,则是属于Object类中的。
sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持着,当指定的时间到了又会自动恢复运行状态。
在调用sleep()方法的过程中,线程不会释放对象锁。
而当调用wait()方法的时候,线程会放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象调用notify()方法后本线程才进入对象锁定池准备
获取对象锁进入运行状态。
标签:
原文地址:http://www.cnblogs.com/GumpYan/p/5743496.html