JAVA多线程(1)

原创 2016年08月30日 22:42:22

音乐播放器就是一个进程,QQ也是一个进程,一个进程当中可以有多个线程。一个CPU同一时间只能做一件事,但是在很小的时间间隔内交替就可以给人同时执行多个程序的感觉
设置一个进程的开销较大,并且进程之间不允许互相访问内存,通信较为困难,所以,创建进程的开销就要小得多。


实现多线程得方法有两种,一个是继承 Thread类,一个是实现Runnable接口。不管是哪个,都需要重写run方法。


继承Thread类的示例:

class MyThread extends Thread
{
	@Override
	public void run()
	{
		//线程的代码
	}
}

public class Test1{
	public static void main(String[] args){
		MyThread mythread=new MyThread();
		mythread.start();//启动线程
	}
}

实现Runnable类示例:
class MyThread implements Runnable{
	public void run(){
		//线程代码
	}
}

public class Test2{
	public static void main(String[] args){
		MyThread t=new MyThread();
		new Thread(t).start();//启动线程
		//或者
		new Thread(t,"String").start();//启动线程并命名
	}
}	

两种方法相比,实现Runnabke接口可以较好的实现线程间数据的共享,因为可以用同一个类去创建多个线程,每个线程都可以存取该类中的数据。
比如:
public class test {
    public static void main(String[] args) {
        MyThread t=new MyThread();
        new Thread(t,"thread1").start();
        new Thread(t,"thread2").start();
        new Thread(t,"thread3").start();
    }
}

class MyThread implements Runnable {
    private int i = 1000;

    public void run() {
        while (i >= 0) {
            System.out.println(Thread.currentThread().getName()+"  "+i);
            i--;
        }
    }
}
运行结果如下:
thread2  6
thread1  3
thread3  4
thread1  1
thread2  2
thread3  0


从这里可以看到,thread1,thread2,thread3三个线程共享了MyThread类中的i变量。
这有着重要的意义,比如多个火车售票点同时卖票,当然要共享一个库存,否则明明已经没票了但有的售票点却还在卖票。


版权声明:本文为博主原创文章,未经博主允许不得转载。

java基础多线程练习题(1)

  • 2017年08月08日 15:26
  • 7KB
  • 下载

Java多线程设计模式(part1)

  • 2008年04月29日 12:00
  • 5.72MB
  • 下载

学习java多线程的笔记1--Thread(Runnable t)与重写run()方法等

今天看了看《Java2核心技术卷II:高级特性》中的--多线程--这一篇,还有看了张孝祥老师的Java多线程与并发库高级应用视频。顺便做个笔记,方便以后复习一下java相关知识: 关于线程Threa...

java多线程1

  • 2012年10月24日 20:22
  • 2KB
  • 下载

Java Tread多线程(1)实现Runnable接口

本文演示,Tread多线程实现Runnable接口,以及简单的说明为什么有这种创建线程的方法。 一、创建线程的2中方法: 1)继承Thread类实现多线程,参见我的上一篇文章:Java Tread多线...

java多线程设计模式详解part1

  • 2008年03月14日 10:13
  • 6MB
  • 下载

Java多线程设计模式.part1

  • 2007年07月03日 12:27
  • 9.54MB
  • 下载

java多线程笔记(1)

1.Java线程的生命周期和基本状态关于Java线程的生命周期,有这样一张图可以作为参考 该图基本描绘了Java线程的生存周期。 主要包括五种基本状态: - 新建状态(New):当新建线程创...

Java多线程绘图的24点游戏-part1

  • 2008年01月22日 11:42
  • 9MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:JAVA多线程(1)
举报原因:
原因补充:

(最多只允许输入30个字)