Java基础知识之多线程(1)
2015-04-18 10:20
253 查看
1、认识线程
a) 对于线程来说,容易混淆的还有进程,我们用一个例子来区分它们,每次打开一个word文档,这就是一个进程,一个word中的拼写检查这是一个线程,再如每登陆一个QQ,这是一个进程,QQ中的每一个会话都是一个线程。b)对于只有一个CPU的电脑来说,一个时间点只有一个进程占用CPU
2、Java中如何实现线程
Java中实现多线程可以采用:继承Thread类,或,实现Runnable接口a)继承Thread类,这个方式必须覆写run()方法
class 类名称 extends Thread{ //成员变量 //成员方法 public void run(){ //线程主体 } }
小例子:
import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.Map; class myThread extends Thread { Map<String,? extends Collection<Integer>> map= new HashMap<String,List<Integer>>(); private String name; public myThread(String name){ this.name = name; } public void run(){ for(int i = 0; i < 10; i++){ System.out.println(name + "运行,i="+i); } } } public class MyThread { public static void main(String[] args){ myThread mt1 = new myThread("线程A"); myThread mt2 = new myThread("线程B"); mt1.start(); <span style="white-space:pre"> </span>mt2.start(); } }
b)实现Runnable接口,覆写run()方法
public class Thread2 implements Runnable { //成员变量 //成员方法 public void run(){ //线程主体 } }小例子:
class A implements Runnable{ //成员变量 //成员方法 private String name; public A(String name){ this.name = name; } public void run(){ //线程主体 for(int i = 0; i < 10; i++){ System.out.println(name + "运行,i="+i); } } } public class Thread2{ public static void maim(String[] args){ A a1 = new A("线程A"); A a2 = new A("线程B"); Thread t1 = new Thread(a1); Thread t2 = new Thread(a2); t1.start(); t2.start(); } }
3、两种方式的区别及使用结论
a)使用Runnable接口可以实现资源的共享,而Thread类不行.b)避免单继承带来的局限性
在开发中使用Runnable接口是比较合适的
4、线程的状态
创建状态:准备好一个多线程对象,Thread t = new Thread();就绪状态:调用start()方法,等待CPU调度
运行状态:执行run()方法
阻塞状态:暂时停止执行,可能将资源给其他线程使用
终止状态:线程执行完毕,不再使用
相关文章推荐
- JAVA基础知识之多线程——线程的生命周期(状态)
- Java基础知识笔记(五:多线程的同步问题)
- 黑马程序员 Java基础知识总结-多线程
- java并发多线程基础知识
- Java基础知识强化之多线程笔记04:并行和并发 区别
- JAVA多线程程序开发基础知识
- JAVA基础知识之多线程——线程组和未处理异常
- java基础知识总结-多线程(二)
- Java多线程1——基础知识
- java多线程基础知识(二)
- JAVA常用基础知识点[继承,抽象,接口,静态,枚举,反射,泛型,多线程...]
- 黑马程序员——java基础知识之多线程
- Java基础知识总结:多线程
- 基础知识《七》---Java多线程详解
- Java多线程基础知识(四)
- 基础知识《四》---Java多线程学习总结
- Java多线程编程总结笔记——一多线程基础知识
- java基础知识---多线程、同步
- JAVA常用基础知识点[继承,抽象,接口,静态,枚举,反射,泛型,多线程...]
- Java基础知识 十四 (多线程)