简单的java线程实现分析

来源:互联网 发布:幂学集训营怎么样知乎 编辑:程序博客网 时间:2024/06/05 08:43

一、线程简述:

说到线程,对于java来说并不应该感到陌生,java也是较早支持线程的一种语言。对于线程,多个程序片段操作相同的数据空间,程序获取cpu资源实际上是cpu工作时间片的分配。如果是多核心的cpu那么就会出现多个线程正真的同时运行,数据空间的写操作问题就会引起线程安全问题,也称之为并发。

还有进程和线程的关系,以及协程的概念等就不多说了,有兴趣了解的可以搜搜相关资料,下面来java线程的简单实现。

二、Thread:

对于java来说有两种方式实现线程:编写线程的子类,或者实现Runnable接口。

Thread子类的实现方式:

public class ThreadA extends Thread{public void run() {System.out.println("ThreadA I'm running");}}
调用方法 Thread a = new ThreadA();

a.start(); 注意是a.start()方法。而实现类重载的是run方法。

实现接口方式:

public class ThreadB implements Runnable{public void run() {System.out.println("ThreadB I'm running");}}

调用方法 Thread b = new ThreadB();

b.start(); 


除以上之外还有些表现形式不同的方式如内部类或者内部匿名类直接去实现:

Thread tmp = new Thread(new Runnable(){public void run() {System.out.println("I'm running");}});tmp.start();


可以看看Thread对象的源代码还有一些其他的构造方法:

如:线程组,添加线程名等。




问题:两种方式实现,可以叙说下各自的优缺点。可按照OO的设计方向考虑


code 部分:MulThread.java