• Java多线程一


    什么是线程?

    线程(Thread)是一个任务从头到尾的执行流,可以把线程想象成程序中语句的顺序执行过程。

    一个程序往往需要同时完成多个任务,比如浏览器既要显示页面,还要同时下载图片,这种并发执行多个任务的技术被称为多任务(multitasking)。线程提供了运行一个任务的机制,程序要并发执行多个任务就需要启动多个线程。

    什么是任务?

    Java中一个任务(Task)就是实现了Runnable接口的一个实例, 这个接口只包含一个run方法。

    定义一个任务类:

       1: public class TaskClass implements Runnable
       2: {
       3:     public TaskClass()
       4:     {
       5:     }
       6:     
       7:     public void run()
       8:     {
       9:        ... 
      10:     }
      11: }

    任务必须在线程中执行,线程为任务的执行提供了方便:

       1: TaskClass task = new TaskClass();
       2: Thread thread = new Thread(task);
       3: thread.start();

    注意: Thread类本身也实现了Runnable接口,可以通过定义一个Thread的扩展类,并实现run方法,然后在客户端中直接调用start方法来启动线程。但并不推荐通过这种方式来实现多任务,因为这把任务和运行任务的机制混在一起,反而使结构不清晰。

    Thread类及其方法

    image

    yield()方法:此方法使线程让出CPU,让线程调度程序选择其他线程运行

    sleep(long mills)方法:此方法也能使线程让出CPU并进入睡眠状态,休眠指定的时间后该线程会恢复执行。

    join()方法:此方法可以强制一个线程等待另一个线程执行完成。

    setPriority(int p)方法:此方法可以设置线程的优先级,优先级范围是从1-10的数字,JVM会选择当前最高优先级的线程执行。

  • 相关阅读:
    Eclipse集成Maven的Web工程demo(独立及Maven集成tomcat)
    Spring Boot的常见配置项解析
    SpringBoot入门demo
    简单句障碍的解决
    阅读理解(2000年统考)
    Java Web项目实战第1篇之环境搭建
    [STM32F10x] 利用定时器测量脉冲宽度
    [STM32F10x] 利用定时器测量频率
    STM32 输入捕获的脉冲宽度及频率计算
    RT-Thread—STM32—在线升级(Ymodem_OTA、HTTP_OTA)
  • 原文地址:https://www.cnblogs.com/fangyaohua/p/3213507.html
Copyright © 2020-2023  润新知