“核心技术:并发”的版本间差异

来自Wikioe
跳到导航 跳到搜索
无编辑摘要
第2行: 第2行:


== 什么是线程 ==
== 什么是线程 ==
一个程序同时执行多个任务,每一个任务称为一个线程(thread), 它是线程控制的简称。
* 进程与线程有的区别,在于每个进程拥有自己的一整套变量, 而线程则共享数据。
*: 共享变量使线程之间的通信比进程之间的通信更有效、更容易。
=== 使用线程 ===
实现线程的两种方式:
# 实现'''Runnable'''接口,利用接口构造Thread对象;(Runnable 是一个函数式接口,可以用lambda 表达式)
#: <syntaxhighlight lang="java">
Runnable r = () -> { /*task code*/ };
Thread t = new Thread(r);
</syntaxhighlight>
# 继承'''Thread'''类,构造一个子类的对象;
#: <syntaxhighlight lang="java">
class MyThread extends Thread
{
  public void run()
  {
     //task code
  }
}
</syntaxhighlight>
* 不要调用Thread类或Runnable对象的run方法,而应该调用Thread.start方法。
*: 直接调用run 方法,只会执行同一个线程中的任务,而不会启动新线程。
==== 相关方法 ====
===== java.Iang.Thread =====
* Thread( Runnable target )
*: 构造一个新线程, 用于调用给定目标的nm() 方法。
* void start( )
*: 启动这个线程, 将引发调用mn() 方法。这个方法将立即返回, 并且新线程将并发运行。
* void run( )
*: 调用关联 Runnable 的run 方法。
* static void sleep(long minis)
*: 休眠给定的毫秒数。参数:millis 休眠的毫秒数
===== java.lang.Runnable =====
* void run( )
*: 必须覆盖这个方法, 并在这个方法中提供所要执行的任务指令。
== 中断线程 ==
== 中断线程 ==
== 线程状态 ==
== 线程状态 ==

2020年10月19日 (一) 13:41的版本


什么是线程

一个程序同时执行多个任务,每一个任务称为一个线程(thread), 它是线程控制的简称。

  • 进程与线程有的区别,在于每个进程拥有自己的一整套变量, 而线程则共享数据。
    共享变量使线程之间的通信比进程之间的通信更有效、更容易。

使用线程

实现线程的两种方式:

  1. 实现Runnable接口,利用接口构造Thread对象;(Runnable 是一个函数式接口,可以用lambda 表达式)
    Runnable r = () -> { /*task code*/ };
    Thread t = new Thread(r);
    
  2. 继承Thread类,构造一个子类的对象;
    class MyThread extends Thread
    {
       public void run()
       {
          //task code
       }
    }
    


  • 不要调用Thread类或Runnable对象的run方法,而应该调用Thread.start方法。
    直接调用run 方法,只会执行同一个线程中的任务,而不会启动新线程。


相关方法

java.Iang.Thread
  • Thread( Runnable target )
    构造一个新线程, 用于调用给定目标的nm() 方法。
  • void start( )
    启动这个线程, 将引发调用mn() 方法。这个方法将立即返回, 并且新线程将并发运行。
  • void run( )
    调用关联 Runnable 的run 方法。
  • static void sleep(long minis)
    休眠给定的毫秒数。参数:millis 休眠的毫秒数
java.lang.Runnable
  • void run( )
    必须覆盖这个方法, 并在这个方法中提供所要执行的任务指令。

中断线程

线程状态

线程属性

同步

阻塞队列

线程安全的集合

Callable 与 Future

执行器

同步器

线程与Swing