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
原创粉丝点击