java 多线程二
线程中断:
/**
* Created by root on 17-9-30.
*/
public class Test4Thread2 { public static void main(String[] args) {
Thread t=new Thread(()->{try {
System.out.println(Thread.currentThread().getName()+"start");
Thread.sleep(10000);
System.out.println(Thread.currentThread().getName()+"end");
} catch (InterruptedException e) {
e.printStackTrace();
}});
t.start(); Thread t2=new Thread(()->{try {
for (int i=0;i<10;i++){
Thread.sleep(1000);
System.out.println(Thread.currentThread().getName()+">>>"+i);
if (i==3){
t.interrupt();
}
} } catch (InterruptedException e) {
e.printStackTrace();
}});
t2.start(); }
}
输出:
Thread-0start
Thread-1>>>0
Thread-1>>>1
Thread-1>>>2
Thread-1>>>3
java.lang.InterruptedException: sleep interrupted
at java.lang.Thread.sleep(Native Method)
at com.xh.alibaba.Test4Thread2.lambda$main$0(Test4Thread2.java:11)
at java.lang.Thread.run(Thread.java:745)
Thread-1>>>4
Thread-1>>>5
Thread-1>>>6
Thread-1>>>7
Thread-1>>>8
Thread-1>>>9 Process finished with exit code 0
当线程0在休眠时,线程1打断他,就会报异常。
线程优先级:
/**
* Created by root on 17-9-30.
*/
public class Test4Thread3 { public static void main(String[] args) {
MyT1 myT1 = new MyT1();
Thread t2_1 = new Thread(myT1,"myT1_1");
Thread t2_2 = new Thread(myT1,"myT1_2");
Thread t2_3 = new Thread(myT1,"myT1_3");
t2_1.setPriority(1);
t2_2.setPriority(10);
t2_3.setPriority(1);
t2_1.start();
t2_2.start();
t2_3.start();
} } class MyT1 implements Runnable {
int tickets = 10; public void run() {
for (; tickets > 0; ) {
System.out.println(Thread.currentThread().getName() + ":" + tickets--);
}
}
}
结果:
myT1_2:10
myT1_3:9
myT1_1:7
myT1_2:8
myT1_2:4
myT1_2:3
myT1_2:2
myT1_2:1
myT1_1:5
myT1_3:6 Process finished with exit code 0
java 多线程二的更多相关文章
- 从零开始学习Java多线程(二)
前面已经简单介绍进程和线程,为后续学习做铺垫.本文讨论多线程传参,Java多线程异常处理机制. 1. 多线程的参数传递 在传统开发过程中,我们习惯在调用函数时,将所需的参数传入其中,通过函数内部逻辑处 ...
- Java多线程(二) —— 深入剖析ThreadLocal
对Java多线程中的ThreadLocal类还不是很了解,所以在此总结一下. 主要参考了http://www.cnblogs.com/dolphin0520/p/3920407.html 中的文章. ...
- Java多线程(二) 多线程的锁机制
当两条线程同时访问一个类的时候,可能会带来一些问题.并发线程重入可能会带来内存泄漏.程序不可控等等.不管是线程间的通讯还是线程共享数据都需要使用Java的锁机制控制并发代码产生的问题.本篇总结主要著名 ...
- java多线程(二)-Runnable和Thread
Java在顺序性语言的基础上提供了多线程的支持.Java的线程机制是抢占式的.这表示调度机制会周期的中断线程,将上下文切换到另一个线程,从而为每个线程都提供时间片.(与抢占式多线程对应的是 协作式多线 ...
- java多线程(二)之实现Runnable接口
一.java多线程方式2: 实现Runnable接口 好处:a. 可以避免由于java单继承带来的局限性. b. 适合多个相同的程序的代码去处理同一个资源的情况, 把线程与程序的代码, 数据有效分离, ...
- java多线程二之线程同步的三种方法
java多线程的难点是在:处理多个线程同步与并发运行时线程间的通信问题.java在处理线程同步时,常用方法有: 1.synchronized关键字. 2.Lock显示加锁. 3.信号量Se ...
- java多线程(二)
线程的阻塞状态: 参考java多线程(一)多线程的生命周期图解,多线程的五种状态. 1.1 join(),如果在A线程体里面执行了B线程的join()方法,那么A线程阻塞,直到B线程生命周期结 ...
- Java多线程——<二>将任务交给线程,线程声明及启动
一.任务和线程 <thinking in java>中专门有一小节中对线程和任务两个概念进行了具体的区分,这也恰好说明任务和线程是有区别的. 正如前文所提到的,任务只是一段代码,一段要达成 ...
- java多线程(二)——锁机制synchronized(同步方法)
synchronized Java语言的关键字,可用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这段代码.当两个并发线程访问同一个对象object中 ...
随机推荐
- P2464 [SDOI2008]郁闷的小J
题目描述 小J是国家图书馆的一位图书管理员,他的工作是管理一个巨大的书架.虽然他很能吃苦耐劳,但是由于这个书架十分巨大,所以他的工作效率总是很低,以致他面临着被解雇的危险,这也正是他所郁闷的. 具体说 ...
- Migrate Maven Projects to Java 11
Migrate Maven Projects to Java 11 So you want to migrate to Java 11 but your Maven project is still ...
- OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用
解决方案:oracle 版本太低,请装11G或以上版本..
- 【AGC005F】Many Easy Problems (NTT)
Description 给你一棵\(~n~\)个点的树和一个整数\(~k~\).设为\(~S~\)为树上某些点的集合,定义\(~f(S)~\)为最小的包含\(~S~\)的联通子图的大小.\(~n~ ...
- 自学工业控制网络之路1.4-典型的现场总线介绍CAN
返回 自学工业控制网络之路 自学工业控制网络之路1.4-典型的现场总线介绍CAN 1991年3月,发布了CAN技术贵干v2.0,包含了A.B两部分.CAN2.0A给出报文标准格式,CAN2.0B给出了 ...
- 洛谷 P1381 单词背诵 解题报告
P1381 单词背诵 题目描述 灵梦有\(n\)个单词想要背,但她想通过一篇文章中的一段来记住这些单词. 文章由\(m\)个单词构成,她想在文章中找出连续的一段,其中包含最多的她想要背的单词(重复的只 ...
- servlet3.0获取参数与文件上传代码示例
转: servlet3.0获取参数与文件上传代码示例 2018年08月26日 20:25:35 苏凯勇往直前 阅读数:98 package com.igeek.servlet; import ...
- JS面试题(二)(常见算法编程)
1.字符串转驼峰 例如:border-bottom-color ----> borderBottomColor var str="border-bottom-color"; ...
- JQuery实现轮播图及其原理
源码: <!DOCTYPE html> <html> <head> <meta charset="utf-8" name="vi ...
- vue2.0 之事件处理器
事件绑定v-on(内置事件) <template> <div> <a v-if="isPartA">partA</a> <a ...