标签:
多线程编程
1、线程的创建与启动:
(1)创建
A、class MyThread extends Thread {
public void run(){
System.out.println("创建方法一");
}
}
B、class MyTask implements Runnable{
public void run(){
System.out.println("创建方法二");
}
}
(2)启动:
public static void main(String[] args) {
// TODO Auto-generated method stub
MyThread my = new MyThread(4);
my.start();
MyTask my1 = new MyTask(3);
Thread t = new Thread(my1);
t.start();
}
注意:对于上面的代码的my.start();与t.start();是启动线程,虽然改为my.run();也可以实现,但这是调用而不是启动线程。
2、线程状态:
(1)状态图---笔记本知识点116
(2) 线程的优先级
1- MIN_PRIORITY
10-MAX_PRIORITY
5-NORM_PRIORITY
如果什么都没有设置,默认值是5。
注意:不能依靠线程的优先级来决定线程的执行顺序。
(3)有关优先级的方法:
public final void setPriority(int newPriority)//更改线程的优先级。
public final int getPriority()//返回线程的优先级。
3、线程同步
(1)使用关键字synchronized(可选修饰符)
(2)使用情况:
有时两个或两个以上的线程可能要同时访问同一资源时(例:对一张银行卡刷卡与汇款同时进行)
(3)实现同步的办法:
A、同步方法:
在方法名以前的位置加上关键字synchronized;
B、同步块:
如静态初始块一般,只是将“static”换成“synchronized”。
4、线程间的通信:
wait-notify机制
对于wait()、notify()、notifyAll(),这三个方法都只能在synchronized修饰的方法中被调用。
标签:
原文地址:http://www.cnblogs.com/wskaiit/p/5269982.html