Java学习经验(一)多线程初识

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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值