Java线程有自己的地址空间,Java——多线程

20181008003458417666.gif

进程:

是指运行中的应用程序,每个进程都有自己独立的地址空间(内存空间)

线程:

线程是轻量级的进程

县城没有独立的地址空间(内存空间)

线程是由进程创建的(寄生在进程中)

一个进程可以拥有多个线程——多线程编程

线程的五种状态:新建状态new、就绪状态Runnable、运行状态Running、阻塞状态Blocking、死亡状态Dead

20181008003458681321.jpg

多线程:

就是程序同时完成多件事情,Java语言提供了并发机制,程序员可以在程序中执行多个线程,每一个线程完成一个功能,并与其他线程并发执行,这种机制被称为多线程。

实现线程的两种方式:

1、继承Thread类,并重写run函数

案例01:创建ThreadTest类,实现从10到1的逐个输出。

1 public class ThreadTest extends Thread{

2 private int count = 10;

3 public void run() {

4 while(true){

5 System.out.println(count+"");

6 if(--count==0){

7 return;

8 }

9 }

10 }

11 public static void main(String[] args) {

12 new ThreadTest().start();

13 }

14 }

完成线程正真功能的代码放在run()方法中,在main 方法中,执行线程需要调用Thread类中的start方法,start方法调用被覆盖的run()方法,如果不调用start()方法,线程永远都不会启动,在主方法没有调用start方法之前,Thread对象只是一个实例,而不是一个真正的线程。执行结果如下:

20181008003458946929.jpg

2、实现Runnable接口,并重写run函数

如果程序员要实现其他类,还要使当前类实现多线程,可以通过Runnable接口来实现,使用Runnable接口启动新线程的步骤如下:

建立Runnable对象

使用参数为Runnable对象的构造方法创建Thread实例

调用start()方法启动线程

案例02:创建Demo01类,实现每隔一秒输出一个“heloworld”,输出10次停止运行。

1 public class Demo01 {

2

3 public static void main(String[] args) {

4 //启动线程

5 Dog dog=new Dog();

6 Thread t=new Thread(dog);

7 t.start();

8 }

9

10 }

11 class Dog implements Runnable{

12 int times=0;

13 public void run(){

14 while(true){

15 try {

16 Thread.sleep(1000); //休眠1秒,这里用1000毫秒表示

17 } catch (Exception e) {

18 e.printStackTrace();

19 }

20 times++;

21 System.out.println("hello world"+" "+times);

22 if(times==10){

23 break;

24 }

25 }

26 }

27 }

运行结果:

20181008003459393189.jpg

原文:http://www.cnblogs.com/charmingyj/p/3790668.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值