JAVA实现多线程入门
Posted 别宏利
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA实现多线程入门相关的知识,希望对你有一定的参考价值。
1:程序员可以在程序中执行多个线程,每一个线程完成一个功能,并于其他线程并发执行,这种机制被称为多线程
2:实现线程的两种方法是,分别是继承java.lang.Thread或者实现java.lang.Runnable接口
3:Thread类是java.lang包中的一个类,从这个类实例化的对象代表线程
4:完成线程真正功能的代码是放在run()方法中的,当一个类继承Thread类后,就可以在该类中覆盖run()方法,将实现该线程功能的代码写入run()方法中,然后同时调用Thread 类中的strat()方法执行线程,也就是调用run()方法。
1 package com.thread;
2 /**
3 * 1:程序员可以在程序中执行多个线程,每一个线程完成一个功能,并于其他线程并发执行,这种
4 * 机制被称为多线程
5 * 2:实现线程的两种方法是,分别是继承java.lang.Thread或者实现java.lang.Runnable
6 * 接口
7 * 3:Thread泪时java.lang包中的一个类,从这个类实例化的对象代表线程
8 * 4:完成线程真正功能的代码是放在run()方法中的,当一个泪继承Thread类后,就可以
9 * 在该类中覆盖run()方法,将实现该线程功能的代码写入run()方法中,然后同时调用Thread
10 * 类中的strat()方法执行线程,也就是调用run()方法。
11 * @author biexiansheng
12 *
13 */
14 public class ThreadTest extends Thread {//指定类继承Thread类
15
16 private int count=10;
17 public void run(){//重写run()方法
18 while(true){
19 System.out.print(count+" ");//打印count变量
20 if(--count==0){//使count变量自减,当自减为0时,退出循环
21 return;
22 }
23 }
24 }
25 public static void main(String[] args) {
26 //new ThreadTest().start();
27 Thread t=new ThreadTest();//两种方法都可以实现线程运行
28 t.start();
29 }
30 }
示例如下
1 package com.thread;
2 /**
3 * 1:多线程实例练习
4 * @author biexiansheng
5 *
6 */
7 public class ThreadTest1 extends Thread{
8
9 //多线程的实现都是在run()方法中实现的
10 public void run(){
11 System.out.println(getName()+"登上舞台");
12 int count=0;//定义一个变量
13 while(count<=100){
14 System.out.println(getName()+"登上"+count+"次舞台");
15 count++;
16 if(count%10==0){
17 try {
18 Thread.sleep(2000);//捕获异常,休眠2秒
19 } catch (InterruptedException e) {
20 // TODO Auto-generated catch block
21 e.printStackTrace();
22 }//
23 }
24 }
25 System.out.println(getName()+"走下舞台");
26 }
27 public static void main(String[] args) {
28 // TODO Auto-generated method stub
29 Thread t=new ThreadTest1();
30 t.setName("Mr.Thread");
31 t.start();
32 //new ThreadTest1().start();
33
34 //实现Runnable接口
35 Thread t1=new Thread(new RunnableTest(),"Ms.Runnable");
36 t1.start();
37 }
38 }
39
40 class RunnableTest implements Runnable{
41 //写完上一句,类名报错,说明实现一个接口,就要实现这个接口内的方法
42 @Override
43 public void run() {
44 // TODO Auto-generated method stub
45 System.out.println(Thread.currentThread().getName()+"走上了舞台");
46 //Runnable接口实现getName必须通过线程的currentThread()方法得到
47 int count=0;//定义一个变量
48 while(count<=100){
49 System.out.println(Thread.currentThread().getName()+"登上"+count+"次舞台");
50 count++;
51 if(count%10==0){
52 try {
53 Thread.sleep(2000);//捕获异常,休眠2秒
54 } catch (InterruptedException e) {
55 // TODO Auto-generated catch block
56 e.printStackTrace();
57 }//
58 }
59 }
60 System.out.println(Thread.currentThread().getName()+"走下舞台");
61
62 }
63
64 }
以上是关于JAVA实现多线程入门的主要内容,如果未能解决你的问题,请参考以下文章
Java 多线程 :入门- 线程间协作:挂起当前线程(wait)与通知其他线程继续执行(notify notifyAll)