多线程

多线程

在我们的OS里,

进程是资源分配的最小单位

线程是cpu调度的最小单位

并发:分为宏观(多任务)和微观(单任务)。

并行:并发执行。

进程:也称任务,是由操作系统来实现的(如果想通过进程让计算机同时完成多项任务,则每个任务都要开发一个相应的程序来实现的)。

线程:是指同一个程序(线程)内部每个单独执行的流程。

3、利用Timer TimerTask

创建:创建TimerTask的子类,并实现run()方法得到时钟器任务类

          MyTimerTask extends TimerTask{

           public void run(){

           }

        }

    启动:创建时钟器Timer对象

          利用时钟器对象的schedule()方法启动线程任务

Timer timer = new Timer();

       timer.schedule(new MyTimerTask(), ....,...);

在实现线程时,Java语言提供了3种实现方式:

1.     继承Thread类。

2.     实现Runnable接口。

3.     使用timer和TimerTask组合。

如果一个类继承了Thread类,则该类就具备了多线程的能力,可以以多线程的方式执行。

实现Runnable接口

Java语言中提供的另外一种实现多线程应用程序的方式是多线程对象实现Java.lang.Runnable接口,并且在该类中重写Runnable接口的run方法。

在需要启动线程的地方,首先创建Runnable类的对象,然后再以该对象为基础创建Thread类的对象,最后调用Thread对象的start方法,即可启动线程。(这种方式是实现多线程的一种主要方式)

使用Timer和TimerTask组合:就是使用java.util包中的Timer和TimerTask类来实现。

在这种实现方式中,通过继承TimerTask类创建子类,使该子类获得多线程的能力,将需要多线程执行的代码书写在run方法内部,然后通过Timer类启动线程的执行。

一个Timer可以启动任意多个TimerTask实现的线程,但是多个线程之间会存在阻塞。因此,如果多个线程之间需要完全独立运行,最好还是一个Timer启动一个TimerTask实现的线程。

Timer类中启动线程还包括两个scheduleAtFixedRate方法,其作用是实现重复启动线程时的精确延时。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值