java提供多线程同步提供语言级的支持_Java对多线程的支持(一) - Thread类、Runnable接口、Daemon线程、线程同步...

Java是第一个在语言级提供了对多线程程序设计支持的语言。语言级支持是啥意思呢,就是抛开操作系统,只使用Java内置的语句就能实现多线程。一般来讲,多线程会依赖操作系统,我们要高用与系统相关的API才能创建多个线程,如在Windows中的CreateThread()函数。但JAVA就不用了。JAVA运行时系统实现了一个用于调用线程执行的线程调度器,用来决定在某一时刻哪个线程在CPU上运行。

在java技术中,线程通常是抢占式的而不需要时间片分配进程(分配给每个线程相等的CPU时间的进程)。抢占式调度模型就是许多线程处于可以运行状态(等待状态),但实际上只有一个线程在运行。该线程一直运行到它终止进入可运行状态(等待状态),或者另一个具有更高优先级的线程变成可运行状态。在后一种情况下,低优先级的线程被高优先级的线程抢占,高优先级的线程获得运行的机会。线程调度器支持不同优先级线程的抢先方式,但其本身不支持相同优先级线程的时间片轮换。若要想让其支持,则必须将运行时系统运行在支持时间片轮换操作系统上。

1、Thread类和Runnable接口

在Java中实现多线程可以有2种方式,一个是让类继承Thread类,另一个是实现Runnable接口。由于Java不允许多继承,所以当我们让自定义的类继承了Thread类后就不能再继承其它类了,这样会降低日后程序的可扩展性。所以一般我们都是采用实现Runnable接口的方法让一个类具有可执行的特性。

Runnable接口只有一个方法run(),该线程启动时,JVM就会调用run()方法以执行该线程。线程类创建后,必须调用start()方法才能启动线程。如:

package cls;

public class ThreadDemo

{

public static void main(String[] args)

{

//创建线程类对象并实现 Runnable接口

Thread th1 = new Thread(new Runnable()

{

// 实现Runnable中的run()方法

public void run()

{

while(true)

System.out.println("Thread1 is running !");

}

});

Thread th2 = new Thread(new Runnable()

{

public void run()

{

while(true)

System.out.println("Threa

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值