java笔记线程方式2

方式2:实现Runnable接口
 * 步骤:
 *   A:自定义类MyRunnable实现Runnable接口
 *   B:重写run()方法
 *   C:创建MyRunnable类的对象
 *   D:创建Thread类的对象,并把C步骤的对象作为构造参数传递

 1 public class MyRunnableDemo {
 2     public static void main(String[] args) {
 3         // 创建MyRunnable类的对象
 4         MyRunnable my = new MyRunnable();
 5
 6         // 创建Thread类的对象,并把C步骤的对象作为构造参数传递
 7         // Thread(Runnable target)
 8         // Thread t1 = new Thread(my);
 9         // Thread t2 = new Thread(my);
10         // t1.setName("林青霞");
11         // t2.setName("刘意");
12
13         // Thread(Runnable target, String name)
14         Thread t1 = new Thread(my, "林青霞");
15         Thread t2 = new Thread(my, "刘意");
16
17         t1.start();
18         t2.start();
19     }
20 }
21 public class MyRunnable implements Runnable {
22
23     @Override
24     public void run() {
25         for (int x = 0; x < 100; x++) {
26             // 由于实现接口的方式就不能直接使用Thread类的方法了,但是可以间接的使用
27             System.out.println(Thread.currentThread().getName() + ":" + x);
28         }
29     }
30
31 }
时间: 2024-10-02 20:53:44

java笔记线程方式2的相关文章

java笔记线程方式1优先级

* 我们的线程没有设置优先级,肯定有默认优先级. * 那么,默认优先级是多少呢? * 如何获取线程对象的优先级? *   public final int getPriority():返回线程对象的优先级 * 如何设置线程对象的优先级呢? *   public final void setPriority(int newPriority):更改线程的优先级.  *  * 注意: *   线程默认优先级是5.  *   线程优先级的范围是:1-10. *   线程优先级高仅仅表示线程获取的 CPU

java笔记线程方式1等待终止

public final void join():等待该线程终止 public class ThreadJoinDemo { public static void main(String[] args) { ThreadJoin tj1 = new ThreadJoin(); ThreadJoin tj2 = new ThreadJoin(); ThreadJoin tj3 = new ThreadJoin(); tj1.setName("李渊"); tj2.setName("

java笔记线程方式1线程终端与停止

public final void stop():让线程停止,过时了,但是还可以使用.public void interrupt():中断线程. 把线程的状态终止,并抛出一个InterruptedException. 1 public class ThreadStopDemo { 2 public static void main(String[] args) { 3 ThreadStop ts = new ThreadStop(); 4 ts.start(); 5 6 // 你超过三秒不醒过来

java笔记线程方式1睡眠

1 public class ThreadSleepDemo { 2 public static void main(String[] args) { 3 ThreadSleep ts1 = new ThreadSleep(); 4 ThreadSleep ts2 = new ThreadSleep(); 5 ThreadSleep ts3 = new ThreadSleep(); 6 7 ts1.setName("林青霞"); 8 ts2.setName("林志玲"

java笔记--线程的插队行为

对线程的插队行为的理解 在编写多线程时,会遇到让一个线程优先于其他线程运行的情况,此时除了可以设置其优先级高于其他线程外,更直接的方式是使用Thread类的join()方法 --如果朋友您想转载本文章请注明转载地址"http://www.cnblogs.com/XHJT/p/3893797.html"谢谢-- 使用join()方法,可实现"插队"效果.当插队的线程运行结束后,其他线程将继续执行.join()方法是Thread类的一个静态方法,它有三种形式: join

11.4-全栈Java笔记:线程三种状态的控制

关于Java线程终止.暂停.联合的文章网上有很多,经过测试,本节重点讲解的是针对不同使用场景选择合适的方法. 终止线程的典型方式 终止线程我们一般不使用JDK提供的stop()/destroy()方法(他们本身也被JDK废弃了).通常的做法是提供一个boolean型的终止变量,当这个变量置为false,则终止线程的运行. [示例1]终止线程的典型方法(重要!!!) public class TestThreadCiycle implements   Runnable { String name;

11.11-全栈Java笔记:线程状态转换和任务定时调度

线程状态转换 1)New :创建好线程对象,但没有启动的时候. 一个线程调用start()之后不一定会马上启动,此时进入就绪状态,等待得到资源. 2)就绪线程序通过Scheduler(调度程序)去确定是否运行. 3)Runing---dead:运行结束(非双向,为单向箭头). 4)Runing---就绪:暂停(除了没有CPU,具备运行的所有条件). 5)Runing-otherwise(阻塞):因程序原因:调用sleep或join之后,线程被阻塞.这时不具备运行的条件,此时线程进入阻塞池.sle

11.9-全栈Java笔记: 线程并发协作(生产者/消费者模式)

多线程环境下,我们经常需要多个线程的并发和协作.这个时候,就需要了解一个重要的多线程并发协作模型"生产者消费者模式". 什么是生产者? 生产者指的是负责生产数据的模块(这里模块可能是:方法.对象.线程.进程). 什么是消费者? 消费者指的是负责处理数据的模块(这里模块可能是:方法.对象.线程.进程). 什么是缓冲区? 消费者不能直接使用生产者的数据,它们之间有个"缓冲区".生产者将生产好的数据放入"缓冲区",消费者从"缓冲区"

11.3-全栈Java笔记:线程的生命周期

一个线程对象在它的生命周期内,需要经历5个状态. 新生状态(New) 用new关键字建立一个线程对象后,该线程对象就处于新生状态.处于新生状态的线程有自己的内存空间,通过调用start方法进入就绪状态. 就绪状态(Runnable) 处于就绪状态的线程已经具备了运行条件,但还没有分配到CPU,处于 "线程就绪队列",等待系统为其分配CPU. 就绪状态并不是执行状态,当系统选定一个等待执行的Thread对象后,它就会进入执行状态. 一旦获得CPU,线程就进入运行状态并自动调用自己的run