多线程的一些理解
当我们要用到多线程时,第一个想到的就是Thread,那在java机制中Thread是怎样写到的呢。
通过查看源码,我们能找到最核心的方法,在Thread中有一个run方法
public void run(){
if(target!=null){
target.run();
}
}
target是Runnable对象。
所以执行Thread有两种方法:1.重写Thread 的run方法。
2.当target不等于null,即有Runnable,那么就执行Runnable的run方法。
1.Thread thread = new Thread(){重写run方法}
thread.start();
2. new Thread(new Runnable{
public void run(){
}
}).start();
定时器
new Timer().schedule(new TimerTask() { @Override public void run() { // TODO Auto-generated method stub } }, 0, 1000);//每隔一秒执行一次run方法
线程中我们经常用到同步
这就要我们实现其原子性
即用同一把锁,锁住代码,也可以锁住同一个类
最好的处理是把要同步的方法放入到一个业务类中同一管理
synchronized (obj) {
while(boolean){
obj.wait(timeout);
}
}