zoukankan      html  css  js  c++  java
  • 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会选择当前最高优先级的线程执行。

  • 相关阅读:
    697-数组的度
    1013-将数组分成和相等的三个部分
    linux命令基础
    Fiddler安卓抓包设置
    HTTPS协议
    HTTP协议
    TCP和UDP的区别
    TCP三次握手以及四次挥手
    OSI七层网络模型,数据传输过程解析
    jmeter常用命令(非GUI模式命令)
  • 原文地址:https://www.cnblogs.com/fangyaohua/p/3213507.html
Copyright © 2011-2022 走看看