- 浏览: 1090820 次
文章分类
- 全部博客 (379)
- S2SH (16)
- stuts2 (0)
- java语言 (81)
- JSP (17)
- <html>元素 (11)
- javaweb (4)
- web容器 (3)
- ext (23)
- javaScript (48)
- ant (1)
- liferay (1)
- sql (9)
- css (42)
- 浏览器设置 (3)
- office_world (1)
- eclipse (4)
- 其它 (28)
- 操作系统 (5)
- android (6)
- Struts2 (11)
- RegEx (3)
- mysql (5)
- BigDATA (1)
- Node.js (1)
- Algorithm (10)
- Apache Spark (1)
- 数据库 (5)
- linux (2)
- git (1)
- Adobe (3)
- java语言,WebSocket (1)
- Maven (3)
- SHELL (1)
- XML (2)
- 数学 (2)
- Python (2)
- Java_mysql (1)
- ReactJS (6)
- 养生 (4)
- Docker (1)
- Protocols (3)
- java8 (2)
- 书籍 (1)
- Gradle (2)
- AngularJS (5)
- SpringMVC (2)
- SOAP (1)
- BootstrapCSS (1)
- HTTP协议 (1)
- OAuth2 (1)
最新评论
-
Lixh1986:
Java并发编程:自己动手写一把可重入锁https://blo ...
Java之多线程之Lock与Condition -
Lixh1986:
http://win.51apps.com.cn/https: ...
temp -
ztwsl:
不错,支持很好
HttpServletRequest和ServletRequest的区别 -
guodongkai:
谢谢您能将知识精华汇编总结,让初学者们从原理中学会和提高。
javaScript之function定义 -
kangwen23:
谢谢了,顶顶
struts2中的ValueStack学习
1、背景知识
关于进程和线程的区别,总有人喜欢这样问。
这就像问 java中 final 、 finally 、finalize 的区别一样滑稽。(只是因为这3个关键字的开头都含有f、i、n、a、l这几个字母么?)
进程和线程是2种不同的程序运行的机制。2者实现的方式不同。基本上没有可比性。
用进程设计实现的程序,跑不了所谓的线程。即使有线程的概念,也和使用线程实现的程序中线程的概念相差甚远。2者根本不是一个东西。
如果要谈区别,说:进程设计理念 和 线程设计理念 有何区别。我想还不多。不要钻进进程里谈进程和线程,也不要钻进线程里谈进程和线程。
java虚拟机是线程实现的。
2、死锁
在一个线程中,需要锁定2个及以上对象,但是需要去锁定的对象,被别的线程锁定,而别的线程依赖当前线程已锁定的对象。
TestDeadLock.java
-
关于进程和线程的区别,总有人喜欢这样问。
这就像问 java中 final 、 finally 、finalize 的区别一样滑稽。(只是因为这3个关键字的开头都含有f、i、n、a、l这几个字母么?)
进程和线程是2种不同的程序运行的机制。2者实现的方式不同。基本上没有可比性。
用进程设计实现的程序,跑不了所谓的线程。即使有线程的概念,也和使用线程实现的程序中线程的概念相差甚远。2者根本不是一个东西。
如果要谈区别,说:进程设计理念 和 线程设计理念 有何区别。我想还不多。不要钻进进程里谈进程和线程,也不要钻进线程里谈进程和线程。
java虚拟机是线程实现的。
2、死锁
在一个线程中,需要锁定2个及以上对象,但是需要去锁定的对象,被别的线程锁定,而别的线程依赖当前线程已锁定的对象。
TestDeadLock.java
public class TestDeadLock implements Runnable{ public int flag =1; static Object o1 = new Object(); static Object o2 = new Object(); public void run(){ System.out.println("flag=" +flag); if(flag == 1){ synchronized(o1){ try{ Thread.sleep(500); }catch(Exception e){ e.printStackTrace(); } synchronized(o2){ System.out.println("1"); } } } if(flag == 0){ synchronized(o2){ try{ Thread.sleep(500); }catch(Exception e){ e.printStackTrace(); } synchronized(o1){ System.out.println("0"); } } } } public static void main(String[] args){ TestDeadLock td1 = new TestDeadLock(); TestDeadLock td2 = new TestDeadLock(); td1.flag = 1; td2.flag = 0; Thread t1 = new Thread(td1); Thread t2 = new Thread(td2); t1.start(); t2.start(); } }
-
发表评论
-
java 将文件夹所有的文件合并到指定的文件夹下
2020-06-30 19:17 976场景:将文件夹所有的文件合并到指定的文件夹下 另外:如果想效 ... -
多线程-线程池的四种创建方式
2020-04-01 18:38 410多线程-线程池的四种创建方式 https://blog.cs ... -
Java基础之:nio
2019-11-13 15:38 414一、理论讲解: 史上最强Java NIO入门:担心从入门到放弃 ... -
Java 分布式之:RPC 基本概念
2019-11-13 15:07 402转载: https://www.jianshu.com/p/ ... -
Java之 volatile 关键字原理详解
2019-11-07 15:36 443一、什么是 volatile ? ... -
POI实现excell批注背景图片(仿html浮窗显示图片)
2019-10-21 08:17 600POI实现excell批注背景图片(仿html浮窗显示图片) ... -
Java之设计模式之 Observer 观察者
2019-07-04 17:21 972观察者设计模式 Java 已经实现了该模式,并且提供了使用类 ... -
HashMap, LinkedHashMap and TreeMap
2019-03-01 11:04 624https://stackoverflow.com/a/177 ... -
Java lib 操作 excel 插入图片
2019-01-19 12:46 838https://poi.apache.org/componen ... -
数据库连接池C3P0
2018-05-29 16:50 810一、名字的由来 很多 ... -
Java8之集合(Collection)遍历 forEach()、stream()
2018-05-29 14:39 20658package java8.collections; ... -
Junit Vs main on "java.util.concurrent.Executors"
2017-11-10 16:44 733Same code with different result ... -
Java之大数据学习路线
2017-11-03 10:08 5673三个月大数据研发学习 ... -
Java中创建对象的5种方式
2017-10-26 14:21 805一、Java之5种创建对象的方式 ————————————— ... -
Log4j和Slf4j的比较
2017-06-23 12:41 1360一直搞不清 Log4j 和 SLF4j 的关系。今天才若有所 ... -
Java之Java7新特性之try资源句式
2017-04-20 14:58 5338Java之Java7新特性之try资源句式 一、【try资源 ... -
Java之 java.util.concurrent 包之ExecutorService之submit () 之 Future
2017-03-04 21:27 3772一、如何使用 ExecutorService.submit() ... -
Java之 java.util.concurrent 包之Executor与ExecutorService
2017-03-04 21:18 2644一、问题: execute() 与 submit() 的区别? ... -
JAVAEE之单用户登录
2017-02-05 11:55 1032单用户登录是系统中数据一直性的解决方案之一。 问题背景: 试 ... -
Java之多线程之线程池之线程重复使用
2017-02-04 13:33 5522一、问题背景 在使用多线程时,如果要开启一个任务,则就需要新 ...
相关推荐
春节的时候去面试了一家公司,笔试题里面有一道是使用简单的代码实现线程的‘死锁’,当时没有想到这道题考的是Synchronized关键字,于是自己定义了两个资源模拟了一下。后面想想肠子都悔青了,于是自己在电脑上...
主要介绍了Java编程之多线程死锁与线程间通信简单实现代码,具有一定参考价值,需要的朋友可以了解下。
本章内容 掌握同步代码块的使用 掌握同步方法的使用 理解线程死锁 掌握 ThreadLocal 类的使用 使用多线程模拟猴子采花 使用同步方法模拟购票 使用多线程模拟购物订单生成 使用 ThreadLocal 类模拟银行取款 Java高级...
/*模拟长时间操作共享资源,导致cpu易主,产生与时间有关的错误*/ printf("world\n"); sleep(rand() % 3); } return NULL; } int main(void) { pthread_t tid; srand(time(NULL)); pthread_create(&tid, ...
进程调度模拟+windows系统的多线程同步+连续可变式内存分配的模拟源代码 用C++语言编写
在并发加载初始化这些驱动类的过程中产生死锁的可能性非常大,下面是一个模拟的例子,对于Thread2的实现其实是jdk里java.sql.DriverService的逻辑,也是我们第一次调用java.sql.DriverManager.registerDriver注册一...
哲学家问题的模拟实现 根据哲学家问题的相关原理,用VC/Java/Python编程创建五个线程,模拟实现五个哲学家来竞争五只筷子(资源)去吃通心面的情况,必须确保五个线程的同步和互斥,并且在运行时不会产生死锁。
操作系统的实验报告 银行家算法!...加深对多实例资源分配系统中死锁避免方法——银行家算法的理解,掌握 Windows 环境下银行家算法的实现方法,同时巩固利用 Windows API进行共享数据互斥访问和多线程编程的方法。
Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...
第1篇 Java编程基础 第1章 Java开发环境的搭建(教学视频:9分钟) 2 1.1 理解Java 2 1.2 搭建Java所需环境 3 1.2.1 下载JDK 3 1.2.2 安装JDK 4 ... 第2章 Java基础类型与运算符(教学视频:39...
│ 高并发编程第一阶段05讲、采用多线程方式模拟银行排队叫号.mp4 │ 高并发编程第一阶段06讲、用Runnable接口将线程的逻辑执行单元从控制中抽取出来.mp4 │ 高并发编程第一阶段07讲、策略模式在Thread和Runnable...
│ 高并发编程第一阶段05讲、采用多线程方式模拟银行排队叫号.mp4 │ 高并发编程第一阶段06讲、用Runnable接口将线程的逻辑执行单元从控制中抽取出来.mp4 │ 高并发编程第一阶段07讲、策略模式在Thread和Runnable...
Java绘制图片火焰效果,源代码相关注释:前景和背景Image对象、Applet和绘制火焰的效果的Image对象、Applet和绘制火焰的效果的Graphics对象、火焰效果的线程、Applet的高度,图片到图片装载器、绘制火焰效果的X坐标...
Microsoft Windows 系统错误代码简单分析: 0000 操作已成功完成。 0001 错误的函数。 0002 系统找不到指定的文件。 0003 系统找不到指定的路径。 0004 系统无法打开文件。 0005 拒绝访问。...
实例126 模拟下载文件(线程等待和通报) 365 实例127 家族等级(线程优先级) 368 实例128 定时器(Timer) 371 实例129 没法吃饭(死锁) 372 实例130 方便吃饭(解决死锁) 375 实例131 查看JVM中所有的线程...
实例243 模拟人工服务台(线程连接池) 466 13.6 线程应用实例 471 实例244 下雪的村庄 472 实例245 小飞侠 474 实例246 飞流直下 477 实例247 多线程断点续传 479 实例248 滚动的珠子 485 实例249 余额查询 489 ...
实例214 模拟操作系统的进程调度 379 实例215 利用栈将字符串逆序输出 381 实例216 动态的数组链表 382 实例217 你能猜出鱼是谁的宠物吗? 387 实例218 使用Collections类对List的排序操作 393 ...
实例243 模拟人工服务台(线程连接池) 466 13.6 线程应用实例 471 实例244 下雪的村庄 472 实例245 小飞侠 474 实例246 飞流直下 477 实例247 多线程断点续传 479 实例248 滚动的珠子 485 实例249 余额查询 489 ...