JavaSE复习_10 多线程复习
void show(){
Synchronized(this){
wait() //可以同时有三个线程在此等待。只有拿到锁后,才能继续向下运行
}
}
void start(){
notifyAll(); //唤醒后,三个线程都具备了执行资格,但是并不是都具备执行权。
}
public class Interrupted {
public static void main(String[] args) {
Task t=new Task();
Thread t1=new Thread(t);
t1.start();
}
}
class Task implements Runnable {
@Override
public void run() {
for (int i=0;i<50;i++) {
if(i==30)
Thread.currentThread().interrupt();
System.out.println(Thread.currentThread().isInterrupted()+""+i);
}
}
}
输出:
false0
false1
false2
false3
false4
false5
false6
false7
false8
false9
false10
false11
false12
false13
false14
false15
false16
false17
false18
false19
false20
false21
false22
false23
false24
false25
false26
false27
false28
false29
true30
true31
true32
true33
true34
true35
true36
true37
true38
true39
true40
true41
true42
true43
true44
true45
true46
true47
true48
true49
public static final ThreadLocal<SimpleDateForamt> dateFormat=new ThreadLocal<SimpleDateForamt>() {
protected SimpleDateFormat initialValue() {
return new SimpleDateFormat("yyyy-MM-dd");
}
}
private ReentrantReadWriteLock rwl=new ReentrantReadWriteLock();
Private Lock readLock=rwl.readLock(); //读取操作共享,排斥写操作
private Lock writeLock=rwl.writeLock(); //排斥所有其他操作
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask; /**
* Created by Administrator on 2016/6/30.
*/
public class Exercise {
public static void main(String[] args) { FutureTask<Integer> task=new FutureTask<Integer>(new Counter()); //包装Callable
Thread t=new Thread(task);
t.start(); //这是Runnable接口的特性
try {
System.out.println(task.get()); //这是Future接口的特性
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}
class Counter implements Callable<Integer> {
int sum;
@Override
public Integer call() throws Exception {
for (int i=0;i<100;i++) {
sum+=i;
}
return sum;
}
}
// public static ExecutorService newFixedThreadPool(int nThreads)
ExecutorService pool = Executors.newFixedThreadPool(2); // 可以执行Runnable对象或者Callable对象代表的线程
Future fu1=pool.submit(new MyRunnable());
Future fu2=pool.submit(new MyCallable());
fu1.cancel();//取消该任务
System.out.println(fu2.get());//获取Callable对象的运行结果
//结束线程池
pool.shutdown();
JavaSE复习_10 多线程复习的更多相关文章
- Python并发复习2 - 多线程模块threading
一.多线程的调用 threading 模块建立在thread 模块之上.thread模块以低级.原始的方式来处理和控制线程,而threading 模块通过对thread进行二次封装, 提供了更方便的a ...
- Java复习8.多线程
Java复习8 多线程知识 20131007 前言: 在Java中本身就是支持多线程程序的,而不是像C++那样,对于多线程的程序,需要调用操作系统的API 接口去实现多线程的程序,而Java是支持多线 ...
- Python并发复习1 - 多线程
一.基本概念 程序: 指令集,静态, 进程: 当程序运行时,会创建进程,是操作系统资源分配的基本单位 线程: 进程的基本执行单元,每个进程至少包含一个线程,是任务调度和执行的基本单位 > 进程和 ...
- 7.19python昨日复习和多线程(2)
2018-7-19 21:39:49 我觉得这次的笔记是非常非常完美的!!!明天继续 睡觉去啦! 傍黑时候和晴宝打电话,她特能说,很喜欢这种感觉,有好多东西要和你分享! 1.复习! # !/usr/b ...
- JAVA_SE复习(多线程)
线程 1.两种创建线程的方式都有自身的优点. 实现 Runnable 接口的优点: 从面向对象的设计观点看,Thread 类严格来讲是一个虚拟CPU 的封装,因此只有要改变或扩展该CPU 模型 ...
- C# 多线程复习笔记
编码的日子其实也有一段时间了,但是,作为一个客户端程序,因为自己是做游戏开发的,一直没有对线程这个概念比较模糊吧. 记录下线程的整理学习路线.原文:http://www.cnblogs.com/min ...
- 多线程复习 Rlock ,Condition,Semaphore
#对于io操作来说,多线程和多进程性能差别不大 #1.通过Thread类实例化 import time import threading def get_detail_html(url): print ...
- C# 基础复习 四 多线程
单线程和多线程的区别 单线程: 只用主线程处理,如果一个操作在占用主线程,那么其他操作则无法执行 多线程: 除了主线程外,还开启了子线程来执行操作,子线 ...
- 复习IOS多线程知识
线程的注意点 1.不要同时开太多的线程(1~3条线程即可,不要超过5条) 2.线程概念 * 主线程 : UI线程,显示.刷新UI界面,处理UI控件的事件 * 子线程 : 后台线程,异步线程 3.不要把 ...
随机推荐
- 【转】Program Files (x86)文件夹是干什么的
转载地址:http://leonax.net/p/2373/what-program-files-x86-folder-for/ 今天在微博上看到有人问这个问题.在装好64位的Windows之后,能在 ...
- [转载]Android系统开机画面的实现
Android系统开机画面分为下面三个阶段: 1.开机图片:Android内核是基于标准内核的,对linux比较熟悉,特别是在开发板上移植过Linux系统的人就知道在内核引导过程中会显 示出一 个小企 ...
- MVC模式:实现数据库中数据的增删改查功能
*.数据库连接池c3p0,连接mysql数据库: *.Jquery使用,删除时跳出框,确定是否要删除: *.使用EL和JSTL,简化在jsp页面中插入的java语言 1.连接数据库 (1)导入连接数据 ...
- 如果在遨游浏览器里设置Bing(必应)搜索为默认搜索
今天刚装了遨游浏览器,发现搜索引擎列表里没有Bing(必应)搜索的选项,就自己DIY了下. 步骤: 1. 在遨游搜索引擎列表管理里,添加一个新的搜索引擎项: Name:填写上”Bing(必应)“ (这 ...
- Mix and Build(简单DP)
Mix and Build Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 3936 Accepted: 1203 Case Ti ...
- DailyReport自动保存工具
PS:自己初学C#,SharePoint时做的一个小tool. Friday, November 28, 2014 这个tool编译出来以后可以把部门的daily report保存到本地,数据库,和 ...
- 2016年12月1日 星期四 --出埃及记 Exodus 20:22
2016年12月1日 星期四 --出埃及记 Exodus 20:22 Then the LORD said to Moses, "Tell the Israelites this: `You ...
- 公共控件Listview
ListView属性中,Items是行的总集合,Items集合中的每一个是一行,Items集合里面有ListViewItem集合,这个集合实例化:ListViewItem li=new ListVie ...
- IIS与Apache共用80端口方法[试用成功]
然后假设apache服务器已经安装完成,打开httpd.conf配置文件,找到这些地方去掉#开启代理模块: LoadModule proxy_module modules/mod_proxy.so L ...
- SqlSever基础 datepart函数 返回现在几点了
镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...