Java学习经验(一)多线程初识
来源:互联网 发布:外链网盘源码 编辑:程序博客网 时间:2024/06/05 16:21
import java.lang.*;import java.io.*;public class one {/** * * @author ZJC * 一、线程的状态分为: * 1.可运行状态:使用start()方法启动一个线程后,线程进入该状态。 * 2.运行中状态:调用了run()方法。 * 3.阻塞状态:一个正在运行的线程因为某种原因不能继续运行,进入阻塞状态(Blocked). * 4.死亡状态:线程结束或因异常退出run()方法。 * 二、改变线程状态: * 1.线程睡眠sleep():线程由运行中的状态进入不可运行的状态,睡眠后再进入可运行状态 * * 2.暂停线程yield():暂停当前线程执行,允许其他线程执行。线程状态仍为可运行,不转为阻塞。 * 此时,系统选择其他同优先级线程执行,若无的的话,则执行该线程。这就是yield:屈服 * 3.连接线程join(): * 4.中断线程interrupt(): * */public static class ThreadLearn extends Thread{public String names;public ThreadLearn(String name){super(name);names = name;}public void run(){for(int i = 0;i<5;i++){System.out.println(names+":"+i);try{Thread.sleep(1000);/** * 调用目的:不让当前线程独占该进程所获得的CPU资源,流出一定 * 时间片给该进程中的其他线程; */}catch(InterruptedException e ){e.printStackTrace();}}}}public static void main(String[] args) {// TODO 自动生成的方法存根ThreadLearn a= new ThreadLearn("a");ThreadLearn b= new ThreadLearn("b");System.out.println(Thread.currentThread().getName() + " 线程运行开始!");a.start();b.start();System.out.println(Thread.currentThread().getName() + " 线程运行结束!");/** * 说明:程序启动运行的时候,java虚拟机启动一个进程,主进程main在 * main()调用的时候创建,随着调用ThreadLearn对象a的start()方法, * 另外一个线程也启动了,这样,整个应用就在多线程下运行。Nice! * start()方法调用后并不是立即执行多线程代码,而是使得该线程变为可运行 * 状态,什么时候运行由操作系统的设置决定。 * 多线程程序在该情况下是乱序执行的。结果随机的。如果创建的对象多会更明显 */}}
0 0
- Java学习经验(一)多线程初识
- 多线程(一):初识多线程
- Java学习笔记(一)初识Java
- java多线程学习——初识多线程
- java多线程学习(一)
- JAVA多线程学习(一)
- java多线程学习(一)
- JAVA多线程学习(一)
- JAVA多线程学习---(一)
- JAVA多线程学习(一)
- Java多线程学习(一)
- java多线程学习(一)
- java多线程学习(一)
- java多线程学习(一)
- Java学习-多线程(一)
- JAVA并发处理经验(一)多线程总结
- makefile学习经验(1)----初识Makefile
- Java学习(一) 初识Java及开发环境搭建
- VB2012窗体大小设定
- 润乾——浏览器不兼容问题
- IOS APP开发提交流程证书问题
- 指针(一)
- 工作基本信息
- Java学习经验(一)多线程初识
- Scala学习笔记2 (Lang上篇)
- HDU 4390 Number Sequence ---容斥原理
- OpenERP新手易犯错误之res.model
- Java学习经验(二):线程间的同步
- pivoting insert(旋转插入)
- Oracle Database Server Messages(五) . . . .
- C++遍历中删除std::map元素
- 基于用户投票的排名算法(一):Delicious和Hacker News