java中关于线程的知识
2016-04-02 00:56
465 查看
java中的多线程处理
在java中,通过两种方式来实现多线程1.继承Thread类。
通过继承Thread类来实现多线程的方法简单明了,但是他也有一个很大的缺点,那就是如果相应的多线程处理类已经继承了一个类,便无法再继承Thread类。所以我们一般情况下不采用这种方式来实现线程的编程。
2.实现Runnable接口
使用Runnable接口的方法来实现多线程。在开发过程中能够在一个类中包含所有的代码,以便封装。但是使用Runna接口方法的缺点在于如果想创建多个线程并使个各个线程执行不同的额代码,必须创建额外的类。
方法一:
class TestThread extends Thread(){ private String threadName; TestThread(String threadName){ this.threadName=threadName; } public void run(){ System.out.println(threadName); } } public class MyThread(){ public static void main(String[] args){ for(int i=0;i<10;i++){ TestThread tt=new TestThread("#"+i); tt.start(); } } }
方式二:
class TestRunnable implements Runnable(){ private String threadName; TestRunnable(String threadName){ this.threadName=threadName; } public void run(){ System.out.println(threadName); } } public class MyThread(){ public static void main(String[] args){ for(int i=0;i<10;i++){ TestRunnable tt=new TestRunnable("#"+i); tt.start(); } } }
如果想实现每一个线程都有自己共享的变量改如何解决呢?
ThreadLocal主要解决的就是每个线程绑定自己的值,可以将ThreadLocal类比喻成全局存放数据的盒子,盒子中可以存储每个线程的私有数据。主要方法:
get():返回此线程局部变量的当前线程副本中的值。
initialValue():返回此线程局部变量的当前线程的“初始值”。
remove():移除此线程局部变量当前线程的值。
set(T value):将此线程局部变量的当前线程副本中的值设置为指定值.
相关文章推荐
- Spring Boot 修改代码无需重新启动应用
- Atitit.eclipse git使用
- Atitit.eclipse git使用
- Atitit.eclipse git使用
- <Thinking In Java> 读书笔记
- Java集合类之Hashtable
- 10.JAVA编程思想——对象容纳
- Struts为所有包配置拦截器
- 9.JAVA编程思想 多形性
- 8.JAVA编程思想类再生
- 7.JAVA编程思想笔记隐藏实施过程
- 6.JAVA编程思想初始化和清除
- 5.JAVA编程思想——控制执行
- 4.JAVA编程思想——控制程序流程
- 3.JAVA编程思想——第一个 JAVA程序
- 2.JAVA编程思想——一切都是对象
- 1.JAVA 编程思想——对象入门
- Java8 stream流介绍
- Java8 Lambda表达式介绍
- Atitit.eclipse comment template注释模板