多线程

Posted 微风星语

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多线程相关的知识,希望对你有一定的参考价值。

 

Thread类的静态sleep方法将暂停给定的毫秒数。调用Thread.sleep不会创建一个新线程,是Thread的静态方法。

static void sleep(long millis)

millis 休眠的毫秒数.

注意:

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

创建新执行线程有两种方法:

一种方法是将类声明为 Thread 的子类。

该子类应重写 Thread 类的 run 方法。接下来可以分配并启动该子类的实例。例如,计算大于某一规定值的质数的线程可以写成:

 1 class PrimeThread extends Thread {
 2          long minPrime;
 3          PrimeThread(long minPrime) {
 4              this.minPrime = minPrime;
 5          }
 6  
 7          public void run() {
 8              // compute primes larger than minPrime
 9               . . .
10          }
11      }
12 然后,下列代码会创建并启动一个线程:
13 
14      PrimeThread p = new PrimeThread(143);
15      p.start();

创建线程的另一种方法是声明实现 Runnable 接口的类。

该类然后实现 run 方法。然后可以分配该类的实例,在创建 Thread 时作为一个参数来传递并启动。采用这种风格的同一个例子如下所示:

 1 class PrimeRun implements Runnable {
 2          long minPrime;
 3          PrimeRun(long minPrime) {
 4              this.minPrime = minPrime;
 5          }
 6  
 7          public void run() {
 8              // compute primes larger than minPrime
 9               . . .
10          }
11      }
12 然后,下列代码会创建并启动一个线程:
13 
14      PrimeRun p = new PrimeRun(143);
15      new Thread(p).start();
16 每个线程都有一个标识名,多个线程可以同名。如果线程创建时没有指定标识名,就会为其生成一个新名称。

从以下版本开始:

JDK1.0

 

 

以上是关于多线程的主要内容,如果未能解决你的问题,请参考以下文章

1-多线程的两种实现方式

python并发编程:多线程-开启线程的两种方式

Java多线程-两种常用的线程计数器CountDownLatch和循环屏障CyclicBarrier

多线程1------------创建线程的两种方法

题目24-多线程两种实现方式

Java 实现多线程的两种方式