一.实现线程的两种方式:
1.继承自Thread:
1).自定义类,继承自Thread类;
2).重写run();
3).启动线程:
1>.实例化自定义线程对象;
2>.调用start()方法启动线程;
2.实现Runnable接口:
1).自定义类,实现Runnable接口;
2).重写run()方法;
3).启动线程:
1>.实例化自定义对象;
2>.实例化Thread对象,将自定义对象作为参数传递给Thread的构造方法;
3>.调用Thread的start()启动线程;
二.线程的控制:
1.线程名称:
Thread中的方法:
setName();
getName();
2.线程优先级:
setPriority(int n):注意:n的范围1--10,默认5;
getPriority();
3.线程休眠:
sleep():静态方法;
4.线程加入:
join():
5.线程礼让:
yield():
6.线程中断:
stop();
interrupt();
7.守护线程:
setDaemon():设置守护线程(主线程结束,守护线程也会结束,但不会立即结束,有个小缓冲)
8.获取当前正在访问的线程:
Thread中的静态方法:
currentThread():获取当前线程对象;
三.线程的同步:
1.同步的方式:
1).同步代码块:
synchronized(被锁的对象){
}
2).同步方法(常用):
public synchronized void show(){
}
1.继承自Thread:
1).自定义类,继承自Thread类;
2).重写run();
3).启动线程:
1>.实例化自定义线程对象;
2>.调用start()方法启动线程;
2.实现Runnable接口:
1).自定义类,实现Runnable接口;
2).重写run()方法;
3).启动线程:
1>.实例化自定义对象;
2>.实例化Thread对象,将自定义对象作为参数传递给Thread的构造方法;
3>.调用Thread的start()启动线程;
二.线程的控制:
1.线程名称:
Thread中的方法:
setName();
getName();
2.线程优先级:
setPriority(int n):注意:n的范围1--10,默认5;
getPriority();
3.线程休眠:
sleep():静态方法;
4.线程加入:
join():
5.线程礼让:
yield():
6.线程中断:
stop();
interrupt();
7.守护线程:
setDaemon():设置守护线程(主线程结束,守护线程也会结束,但不会立即结束,有个小缓冲)
8.获取当前正在访问的线程:
Thread中的静态方法:
currentThread():获取当前线程对象;
三.线程的同步:
1.同步的方式:
1).同步代码块:
synchronized(被锁的对象){
}
2).同步方法(常用):
public synchronized void show(){
}