java 多线程一

java 多线程二

java 多线程三

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 多线程二的更多相关文章

  1. 从零开始学习Java多线程(二)

    前面已经简单介绍进程和线程,为后续学习做铺垫.本文讨论多线程传参,Java多线程异常处理机制. 1. 多线程的参数传递 在传统开发过程中,我们习惯在调用函数时,将所需的参数传入其中,通过函数内部逻辑处 ...

  2. Java多线程(二) —— 深入剖析ThreadLocal

    对Java多线程中的ThreadLocal类还不是很了解,所以在此总结一下. 主要参考了http://www.cnblogs.com/dolphin0520/p/3920407.html 中的文章. ...

  3. Java多线程(二) 多线程的锁机制

    当两条线程同时访问一个类的时候,可能会带来一些问题.并发线程重入可能会带来内存泄漏.程序不可控等等.不管是线程间的通讯还是线程共享数据都需要使用Java的锁机制控制并发代码产生的问题.本篇总结主要著名 ...

  4. java多线程(二)-Runnable和Thread

    Java在顺序性语言的基础上提供了多线程的支持.Java的线程机制是抢占式的.这表示调度机制会周期的中断线程,将上下文切换到另一个线程,从而为每个线程都提供时间片.(与抢占式多线程对应的是 协作式多线 ...

  5. java多线程(二)之实现Runnable接口

    一.java多线程方式2: 实现Runnable接口 好处:a. 可以避免由于java单继承带来的局限性. b. 适合多个相同的程序的代码去处理同一个资源的情况, 把线程与程序的代码, 数据有效分离, ...

  6. java多线程二之线程同步的三种方法

          java多线程的难点是在:处理多个线程同步与并发运行时线程间的通信问题.java在处理线程同步时,常用方法有: 1.synchronized关键字. 2.Lock显示加锁. 3.信号量Se ...

  7. java多线程(二)

    线程的阻塞状态: 参考java多线程(一)多线程的生命周期图解,多线程的五种状态.     1.1 join(),如果在A线程体里面执行了B线程的join()方法,那么A线程阻塞,直到B线程生命周期结 ...

  8. Java多线程——<二>将任务交给线程,线程声明及启动

    一.任务和线程 <thinking in java>中专门有一小节中对线程和任务两个概念进行了具体的区分,这也恰好说明任务和线程是有区别的. 正如前文所提到的,任务只是一段代码,一段要达成 ...

  9. java多线程(二)——锁机制synchronized(同步方法)

    synchronized Java语言的关键字,可用来给对象和方法或者代码块加锁,当它锁定一个方法或者一个代码块的时候,同一时刻最多只有一个线程执行这段代码.当两个并发线程访问同一个对象object中 ...

随机推荐

  1. hdu 1074 (状压dp)

    题意: 给出几个学科的作业.每个作业剩余的时间.完成每个学科作业的时间.如果在剩余时间内不能完成相应作业 就要扣分 延迟一天扣一分 求最小扣分 解析: 把这些作业进行全排列  求出最小扣分即可 但A( ...

  2. Trailing Zeroes (III) LightOJ - 1138(二分)

    You task is to find minimal natural number N, so that N! contains exactly Q zeroes on the trail in d ...

  3. day14 装饰器模拟验证附加功能

    user_list=[ {'}, {'}, {'}, {'}, ] current_dic={'username':None,'login':False} def auth_func(func): d ...

  4. hg和git命令对照表

    hg和git命令对照表 来源 https://github.com/sympy/sympy/wiki/Git-hg-rosetta-stone Git hg rosetta stone   muxat ...

  5. ecplise debug 无法命中断点 一直在加载中

    发生原因:可能是特殊关闭了Ecplise 导致 1.这个是没问题的,网上大部分都说这个问题 2.删除所有断点再来(试了无效) 3.删除  X:\workspace\.metadata\.plugins ...

  6. python构建bp神经网络_鸢尾花分类(一个隐藏层)__1.数据集

    IDE:jupyter 目前我知道的数据集来源有两个,一个是csv数据集文件另一个是从sklearn.datasets导入 1.1 csv格式的数据集(下载地址已上传到博客园----数据集.rar) ...

  7. 21 Zabbix系统性能优化建议

    点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 21 Zabbix系统性能优化建议 1. Zabbix性能变慢的可能表现: zabbix队列有太多 ...

  8. mathML如何在谷歌浏览器进行展示

    前几天不是做了个word公式的解析吗,就是office插入的公式是个xmlObject对象,读出来就是个String,所以要进行转换才能在网页上展示,其实我对这方面也不是很了解,然后各种百度解决方案, ...

  9. [SDOI2016]储能表——数位DP

    挺隐蔽的数位DP.少见 其实减到0不减了挺难处理.....然后就懵了. 其实换个思路: xor小于k的哪些都没了, 只要留下(i^j)大于等于k的那些数的和以及个数, 和-个数*k就是答案 数位DP即 ...

  10. A1035. Password

    To prepare for PAT, the judge sometimes has to generate random passwords for the users. The problem ...