线程:执行路径
进程:程序加载到内存
一、java线程的创建方式
1、继承Thread类,重写run方法,使用的时候直接创建子类对象,调用子类对象的start方法即开启线程。注:sleep方法是Thread类的一个成员方法,并且在Runnable接口中不存在sleep方法
2、实现Runnable接口,重写run方法,在使用的时候先创建实现类的对象,再以这个实现类对象作为Thread构造函数的参数创建一个Thread对象,使用这个thread对象调用start方法开启线程。注:直接调用Runnable实现类对象的run方法时不是开启线程,只是这个实现类run方法的一次调用。
3、Runnable r1=new Runnable(){void run(){//do something}};Thread t1=new Thread(r1);t1.start();
二、线程同步的两种方式 synchronized
1、使用synchronized修饰run方法 public synchronized void run(){}
2、使用synchronized代码块包裹run方法中的关键执行代码
eg:
synchronized (this) {
while(true){
if(ticket>0){
System.out.println(Thread.currentThread().getName()+":"+this.ticket--);
}
else
{
break;
}
}
}
转载请注明原文地址: https://ju.6miu.com/read-10444.html