实现多线程的两种方式以及线程控制

第一种:继承Thread类

1、自定义类继承Thread类

2、在Mythread类中重写run()方法

3、创建自定义类对象

4、通过start()方法启动线程对象

第二种:实现Runnable接口(一般第二种方式较为常用)

1、自定义类实现Runnable接口

2、自定义类中重写run()方法

3、创建自定义类对象

4、创建Thread类的对象,传递步骤三的对象作为构造参数

问题:相对于第一种,第二种有什么作用

1、可以避免由于java单继承带来的局限性

2、适合多个相同程序的代码去处理同一个资源的情况,将线程和程序的代码、数据分离,同时也体现了面向对象的设计思想

线程控制

A.休眠线程(执行的线程每次会自动休眠1秒)

B.加入线程(线程B会等待线程A执行完毕才会开始执行)

C.礼让线程(线程会暂停优先让其他线程先执行,相对抢占会更和谐,但不能保证完全均匀分配)

D.守护线程(将线程设置成守护线程true或者用户线程false;需在线程启动前调用)

 守护线程是依赖于用户线程,用户线程退出了,守护线程也就会退出,典型的守护线程如垃圾回收线程。

用户线程是独立存在的,不会因为其他用户线程或者主线程的退出而退出

当正在运行的线程(包括主线程在内)只剩下守护线程时,JVM虚拟机(程序进程)退出;

E.中断线程(只是设置中断标志,并不会真正意义上停止线程)

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值