java多线程并发(并不是同时运行)
来源:互联网 发布:linux 创建文件路径 编辑:程序博客网 时间:2024/06/03 19:05
public class MultThread extends Thread{String name;//初始化name变量public MultThread(String name){this.name=name;}//线程public void run(){try {Thread.sleep(5000);} catch (InterruptedException e) {System.out.println("Interrupt exception");// TODO Auto-generated catch blocke.printStackTrace();}System.out.println("thread name: "+name);}/** * @param args */public static void main(String[] args) {// TODO Autgenerated method stub//创建多个线程MultThread mt1=new MultThread("one");MultThread mt2=new MultThread("two");MultThread mt3=new MultThread("three");mt1.start();mt2.start();mt3.start();//thread name: one//thread name: three//thread name: two为什么结果会是这样啊,难道不应该是先启动mt1么}}
多线程的特点就是启动后由虚拟机进行调度(java抢占模式),因此输出的结果并不是有序的
下面的是我一些摘写记录,分享一下
Thread t=Thread.currentThread();----->获得当前线程,即主线程
创建线程----》继承java.lang.Thread或者实现java.lang.Runnable接口,并实现run()方法
新建的线程不会自动开始运行,必须通过start()方法启动,如果不调用这个方法,线程不会自动运行,也就时说可以事先创建线程,在需要的事后才启动他们
继承Thread的线程
Mythread t=new Mythread();
t.start();
实现Runnable()接口的线程
Myrun m=new Myrun();
Thread t=new Thread(m);
t.start();
用new语句创建线程对象处于新建状态,在堆区中也分配了该线程对象的内存
当一个线程对象创建后,其他线程调用它的start()方法,该线程就近如就绪状态,该线程位于可运行池中,等待获得cpu使用权
运行状态:改状态的线程占用cpu执行程序代码,只有就绪状态的线程才有机会转到运行状态
阻塞:因某种原因放弃cpu,暂时停止运行,当线程处于阻塞状态时,java虚拟机不给线程分配cpu,直到线程重新进入就绪状态,才有机会转到运行状态
死亡:当线程推出run方法时,就进入死亡状态
http://wenku.baidu.com/view/d0d0f318a8114431b90dd8da.html
- java多线程并发(并不是同时运行)
- 关于Java多线程和并发运行的学习(一)
- 关于Java多线程和并发运行的学习(二)
- 关于Java多线程和并发运行的学习(三)
- 协程(Coroutine)并不是真正的多线程
- Java并发(多线程)
- 关于Java多线程和并发运行的学习(五)——并发 Collection
- 并不是从零开始的java web项目创作(一)
- 标准C / C + +运行期库原先并不是设计用于多线程应用程序的唯一一个例子
- Java 多线程 (并发)总结
- Java 多线程 (并发)总结
- Java 多线程同时执行
- 关于Java多线程和并发运行的学习(四)——之Condition
- 关于Java多线程和并发运行的学习(四)——之Semaphore
- 关于Java多线程和并发运行的学习(四)——之CyclicBarrier
- 关于Java多线程和并发运行的学习(四)——之CountDownLatch
- 关于Java多线程和并发运行的学习(四)——之Exchanger
- 关于Java多线程和并发运行的学习(五)——阻塞队列
- 中断分类
- 初学者学习C++的50条忠告
- ORA-01033问题后又出现ORA-01145问题的解决方案
- 一个禁止鼠标右键菜单的脚本,并少了提示警告! .
- 什么是IPX/SPX
- java多线程并发(并不是同时运行)
- BCG界面库在vc中的应用
- 一组新的C内存管理函数
- 笔记之一:关于.net MVC的分部视图
- 如何创建可移动的操作系统
- 三星VS.苹果:为合法禁售iPhone 4S,三星要求苹果提供源代码
- FastDFS学习
- 在Visual Studio 2008中安装Qt 4.5
- linux 多线程1+2问题