[java]多线程2种实现方法
2014-07-31 00:28
323 查看
线程要点:
英文单词: process
并发与并行的概念:
1 并行指在同一时刻,有多条指令在多个处理器上同时执行
2 并发指在同一时刻只能有一条指令执行,但多个进程指令被快速轮换执行,使得在宏观上具有多个
进程同时执行的效果。
进程和线程的对比
进程能得到系统资源直接分配,而线程只能依托进程的资源来生存。一个进程可以有多个线程,但是一个线程只能依托于一个进程。同一个进程下的线程的资源是共享的。
当操作系统创建一个进程的时候,必须为改进程分配独立的内存空间,并分配大量的系统资源;但是创建线程则简单的多,因此用多线程来实现高并发比多进程来实现要高效的多。
创建线程的2种方式:
1 使用集成java.lang.Thread类的方法
2 实现runnable接口的方法
输出结果片段:
a threadThread-0:8---54
main threadmain:1---61
main threadmain:1---62
a threadThread-0:8---55
main threadmain:1---63
main threadmain:1---64
main threadmain:1---65
main threadmain:1---66
main threadmain:1---67
a threadThread-0:8---56
a threadThread-0:8---57
a threadThread-0:8---58
main threadmain:1---68
main threadmain:1---69
main threadmain:1---70
main threadmain:1---71
main threadmain:1---72
main threadmain:1---73
main threadmain:1---74
a threadThread-0:8---59
我们发现主线程和子线程是交替执行的,并且每次每个线程得到的执行时间也是不同的。
本文出自 “orangleliu笔记本” 博客,请务必保留此出处 http://blog.csdn.net/orangleliu/article/details/38309399
英文单词: process
并发与并行的概念:
1 并行指在同一时刻,有多条指令在多个处理器上同时执行
2 并发指在同一时刻只能有一条指令执行,但多个进程指令被快速轮换执行,使得在宏观上具有多个
进程同时执行的效果。
进程和线程的对比
进程能得到系统资源直接分配,而线程只能依托进程的资源来生存。一个进程可以有多个线程,但是一个线程只能依托于一个进程。同一个进程下的线程的资源是共享的。
当操作系统创建一个进程的时候,必须为改进程分配独立的内存空间,并分配大量的系统资源;但是创建线程则简单的多,因此用多线程来实现高并发比多进程来实现要高效的多。
创建线程的2种方式:
1 使用集成java.lang.Thread类的方法
/** * 通过继承Thread类来实现多线程,记得要重写run方法 * 用法如下 * @author orangle */ public class SubThreadTest extends Thread{ @Override public void run() { //重写了run方法,线程的执行体就是整个run方法 //得到整个线程的名称和id的用this就行了 for(int i=0;i<99;i++){ System.out.println("a thread"+this.getName()+":"+this.getId()+"---"+i); } } public static void main(String[] args) { //开启线程的方法,new出线程,调用start方法就行了 Thread t=new SubThreadTest(); t.start(); //得到主线程的对象使用Thread.currentThread()就行了 for(int i=0;i<99;i++){ System.out.println("main thread"+Thread.currentThread().getName()+":"+Thread.currentThread().getId()+"---"+i); } } }
2 实现runnable接口的方法
/** * 这次使用的是Runnable接口来实现多线程 * 子线程的线程体就是重写的run方法 * @author orangle */ public class RunnableTest implements Runnable{ @Override public void run() { // 重写了run方法,线程的执行体就是整个run方法 // 得到整个线程的名称和id要用Thread.currentThread()方法哦 for (int i = 0; i < 99; i++) { System.out.println("a thread" + Thread.currentThread().getName() + ":" + Thread.currentThread().getId() + "---" + i); } } public static void main(String[] args) { // 开启线程的方法,new出线程,使用Thread构造出新的线程,调用start方法 SubThreadTestt = new SubThreadTest(); Thread t1=new Thread(t,"线程1"); t1.start(); // 得到主线程的对象使用Thread.currentThread()就行了 for (int i = 0; i < 99; i++) { System.out.println("main thread" + Thread.currentThread().getName() + ":" + Thread.currentThread().getId() + "---" + i); } } }
输出结果片段:
a threadThread-0:8---54
main threadmain:1---61
main threadmain:1---62
a threadThread-0:8---55
main threadmain:1---63
main threadmain:1---64
main threadmain:1---65
main threadmain:1---66
main threadmain:1---67
a threadThread-0:8---56
a threadThread-0:8---57
a threadThread-0:8---58
main threadmain:1---68
main threadmain:1---69
main threadmain:1---70
main threadmain:1---71
main threadmain:1---72
main threadmain:1---73
main threadmain:1---74
a threadThread-0:8---59
我们发现主线程和子线程是交替执行的,并且每次每个线程得到的执行时间也是不同的。
本文出自 “orangleliu笔记本” 博客,请务必保留此出处 http://blog.csdn.net/orangleliu/article/details/38309399
相关文章推荐
- Java实现多线程的2种方法( Thread ,Runnable )
- [java]多线程2种实现方法
- java实现多线程的两种方法的比较
- Java 多线程实现方法
- 【java实现多线程的两种方法】
- java多线程应用实现方法
- Java 多线程的两种简单实现方法
- Java实现多线程的3种方法
- java多线程的等待和通知机制,两种实现方法
- java实现多线程的两种方法的比较
- Java实现多线程的两种方法
- java多线程--实现runnable方法
- 黑马程序员_java多线程的实现方法
- JAVA 基础笔记|多线程的实现方法
- java下实现多线程的两种方法
- java基础问题---多线程有几种实现方法
- java多线程学习一:实现多线程的两种方法
- java多线程的实现方法
- java实现多线程有两种方法
- 黑马程序员_实现多线程的2种方法