黑马程序员——Java基础--多线程(1)
2015-08-12 13:24
351 查看
------- android培训、java培训、期待与您交流! ----------
一 进程与线程
进程就是正在运行的程序,是系统进行资源分配和调用的独立单位。每一个进程都有它自己的内存空间和系统资源。多进程的作用不是提高执行速度,而是提高CPU的使用率。
线程是进程中的单个顺序控制流,是一条执行路径。线程是依赖于进程存在的。多线程的作用不是提高执行速度,而是为了提高应用程序的使用率。
JVM启动至少启动了垃圾回收线程和主线程,所以是多线程的。
二多继承的实现方案
方案一:
1.定义类继承Thread
2.子类重写Thread类run方法
3.创建Thread子类对象
4.调用子类对象方法start()
5.开启线程,JVM调用线程run方法
弊端: 单继承,数据每个线程自己独享
方案二:
1.定义类实现Runable接口
2. 重写接口抽象方法 run
3. 创建Thread类对象,构造方法传递Runnable接口实现类对象
4.调用子类对象方法start()
5.开启线程,JVM调用线程run方法
好处: 避免单继承局限性,数据是多个线程共享
三线程名字设置和获取
Thread类或者子类直接 getName()
其他类中currentThread().getName()
Thread类方法setName() 或者Thread类构造方法
四 线程休眠
public static void sleep(long millis)
让线程指定毫秒值内休眠,时间一到自动运行
可以在任意地方静态调用
------- android培训、java培训、期待与您交流! ----------
一 进程与线程
进程就是正在运行的程序,是系统进行资源分配和调用的独立单位。每一个进程都有它自己的内存空间和系统资源。多进程的作用不是提高执行速度,而是提高CPU的使用率。
线程是进程中的单个顺序控制流,是一条执行路径。线程是依赖于进程存在的。多线程的作用不是提高执行速度,而是为了提高应用程序的使用率。
JVM启动至少启动了垃圾回收线程和主线程,所以是多线程的。
二多继承的实现方案
方案一:
1.定义类继承Thread
2.子类重写Thread类run方法
3.创建Thread子类对象
4.调用子类对象方法start()
5.开启线程,JVM调用线程run方法
弊端: 单继承,数据每个线程自己独享
方案二:
1.定义类实现Runable接口
2. 重写接口抽象方法 run
3. 创建Thread类对象,构造方法传递Runnable接口实现类对象
4.调用子类对象方法start()
5.开启线程,JVM调用线程run方法
好处: 避免单继承局限性,数据是多个线程共享
class RunnableThread implements Runnable{ public void run(){ for(int x = 0 ; x < 10 ;x++){ System.out.println("run2..."+x); } } } class CreateThread extends Thread{ public void run(){ for(int x = 0 ; x < 10 ;x++){ System.out.println("run1..."+x); } } } public class ThreadDemo { public static void main(String[] args) { CreateThread ct = new CreateThread(); ct.start(); RunnableThread rt=new RunnableThread(); Thread t=new Thread(rt); t.start(); for(int x = 0 ; x < 10 ;x++){ System.out.println("main..."+x); } } }
三线程名字设置和获取
Thread类或者子类直接 getName()
其他类中currentThread().getName()
Thread类方法setName() 或者Thread类构造方法
class ThreadName extends Thread{ ThreadName(String name){ super(name); } public void run(){ String name = Thread.currentThread().getName(); System.out.println(name); } } public class ThreadDemo1 { public static void main(String[] args) { ThreadName tn = new ThreadName("名A"); tn.setName("名B"); tn.start(); String name = Thread.currentThread().getName(); System.out.println(name); } }
四 线程休眠
public static void sleep(long millis)
让线程指定毫秒值内休眠,时间一到自动运行
可以在任意地方静态调用
class ThreadSleep extends Thread{ public void run(){ for(int x = 0 ; x < 3; x++){ //调用方法 try{ Thread.sleep(2000); }catch(InterruptedException ex){ } System.out.println("run.."+x); } } } public class ThreadDemo3 { public static void main(String[] args) { new ThreadSleep().start(); } }
------- android培训、java培训、期待与您交流! ----------
相关文章推荐
- 黑马程序员——java常用基本类库String、包装类、异常总结
- 百度面试题
- 黑马程序员——java集合Collection(单列集合)、Map(双列)
- 总结------历时14个下午完成的安卓软件
- 一道算法面试题
- 2009年3月新浪PHP面试题及答案(一)
- 2009年3月新浪PHP面试题及答案(二)
- 黑马程序员——java复习总结——继承和接口
- 黑马程序员——多线程
- 面试:归并排序和分治法
- 黑马程序员——IO流
- 黑马程序员——java面向对象内部类、抽象类、接口类
- 2015-2016流行的php面试题及答案
- 黑马程序员--java技术blog---第四篇:IO流(3)
- 【黑马程序员-学习笔 4000 记】OC-Runtime
- 黑马程序员——Map集合
- 什么样的程序员最易涨薪?
- 在国内程序员是吃青春饭的职业吗?
- 九月十月百度人搜,阿里巴巴,腾讯华为笔试面试八十题(第331-410题)
- 程序员屌丝的出路在哪?