线程创建的两种方式

来源:互联网 发布:爫爱奇艺下载软件 编辑:程序博客网 时间:2024/06/05 18:33

线程创建的两种方式

1、继承Thread类

class <span style="font-family: Arial, Helvetica, sans-serif;">Mythread  </span>extends Thread{<span style="white-space:pre"></span>...
@Override 
public void run(){}
...}
</pre><pre name="code" class="java">Mythread mt = new Mythread();
mt.start();

2、实现Runnable接口

class MyThread implements Runnable{

...

@Override

public void run(){}

...

}

MyThread mt = new MyThread();

Thread td = new Thread(mt);

td.start();

3、区别

1、Runnable方式可以避免Thread方式由于Java单继承特性带来的缺陷

2、Runnable的代码可以被多个线程(Thread实例共享,适合于多个线程同时处理同一资源的情况)

4、可见性

一个线程对共享变量的修改,能够及时地被其他线程看到

实现方式:

synchronized:原子性(同步)、可见性。

线程解锁前,必须把共享变量刷新到主内存中
线程加锁时,将清空工作内存中共享变量的值,从而使用共享变量时,需要从主内存中重新读取最新的值

volatile



0 0
原创粉丝点击