`
翩跹吉吉
  • 浏览: 102588 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Java 多线程编程

    博客分类:
  • Java
阅读更多

 

  今天我们来看看java的多线程,其实大家不用觉得陌生,因为我们每天敲得java代码在mian方法里执行这就是一个线程,只不过大家没有意识到而已,如果大家不相信我们来看看下面这个睡眠的例子,程序会每隔一秒输出一句提示:

 

package com.oo.thread;

/**
 * Main方法线程测试
 * @author Administrator
 *
 */
public class MainMethodThread {

	public static void main(String[] args) throws Exception {
		
		for(int i = 0; i<5; i++){
			System.out.println("第"+(i+1)+"秒");
			Thread.sleep(1000);  //睡眠1秒
		}
		Thread thread = Thread.currentThread();
		System.out.println("当前线程名:"+thread.getName());
	}
}

 

    输出结果:

    

第1秒
第2秒
第3秒
第4秒
第5秒
当前线程名:main

 

    大家注意看看最后一句,足以说明mian方法执行就开启了一个名为main的线程。

 

   

    好了,我们来具体看看java多线程。

 

  •        实现线程

         实现一个线程的方式有两种:1.实现Runnable接口;   2.继承Thread类。 注意要覆盖run()方法。

 

         下面是两个方式的简单例子:

 

     方式一:实现Runnable接口

package com.oo.thread;

public class MyThread1 implements Runnable{
	
	public void run() {
		Thread thread = Thread.currentThread();
		thread.setName("MyThread1");
		System.out.println("当前线程名:"+thread.getName());
	}

	public static void main(String[] args) {
		MyThread1 thread1 = new MyThread1();
		Thread th = new Thread(thread1);
		th.start();
	}
}

 

    方式二:继承Thread类

   

package com.oo.thread;

public class MyThread2 extends Thread {

	public void run() {
		Thread thread = Thread.currentThread();
		thread.setName("MyThread2");
		System.out.println("当前线程名:"+thread.getName());
	}

	public static void main(String[] args) {
		MyThread2 thread2 = new MyThread2();
		thread2.start();
	}
}

 

 

  • 线程工作流程图:

       

 

           1.就绪:线程对象调用start()方法启动线程,执行run()方法;

           2.Thread状态:

                  睡眠:sleep(long ms); ----Thread类方法----线程进入睡眠状态,一定时间后自动醒来继续线程,它不会释放同步锁;

                  挂起:yield()---Thread类方法---线程开始挂起,释放同步锁;

                  等待:wait()---------线程进入等待状态,它不会自动激活,会释放同步锁,只有当我们调用notify()方法后才会唤醒等待状态线程;

                  阻塞:遇到IO类似的操作会进入阻塞状态。

                  死亡:run()方法执行完毕。

                 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics