- 浏览: 2271018 次
- 性别:
- 来自: 成都
文章分类
- 全部博客 (357)
- J2EE (49)
- JavaScript (40)
- Spring (19)
- Struts (5)
- CSS (8)
- Hibernate (16)
- Java (67)
- DWR (4)
- JSON (3)
- XFIRE (1)
- Tomcat (1)
- Ant (2)
- 设计模式 (2)
- 经典收藏 (2)
- JSP (10)
- Linux (0)
- WebLogic (11)
- myeclipse (13)
- Buffalo (4)
- 文件上传相关 (1)
- oracle (33)
- html (6)
- JSTL (3)
- SVN (2)
- GIT (1)
- 孙卫琴(Java网络编程精解) (1)
- DOM4J (2)
- Swing (1)
- AJAX (1)
- Eclipse (5)
- 日志组件 (3)
- PowerDesigner (1)
- Jquery (22)
- IT技术开发相关网址 (1)
- Nutz (1)
- 其它 (1)
- Velocity (3)
- WebService (1)
- MySql (2)
- Android (1)
- Maven (2)
- Quartz (11)
- Lucene (1)
- springsource (1)
- Junit (1)
- Activiti (0)
最新评论
-
yzlseu:
拼凑,没有营养
Activiti进阶—分配组任务 -
zhangsenhao:
非常赞!代码很清楚
SpringMVC3.0+MyIbatis3.0(分页示例) -
xiamw2000:
分页写得不对,应该是 : order by ${orderNa ...
SpringMVC3.0+MyIbatis3.0(分页示例) -
sheertewtw:
...
SpringMVC:上传与下载 -
kingtoon:
...
XSS之xssprotect
场景一:要求二个线程各自运行,中间不产生交互行为,等一个方法运行完了,在运行另外一个方法
运行结果:
它们之间没有交互的行为,就好像二个陌生人一样,各做各的,你们相识吧!
场景二 :要求二个线程之间相互交互
运行结果如下:
它们之间很好的进行了交互,一问一答,多么有趣呀
public class SweetheartsTest { public static void main(String[] args) { new SweetheartsTest().init(); } private void init() { final Sweethearts sweethearts = new Sweethearts(); // 这二个方法不会产生交互,各执行各的,中间不会被打断 //synchronized作用于方法上,相当于在对象上加了锁 new Thread(new java.lang.Runnable() { public void run() { for (int i = 1; i <= 50; i++) { sweethearts.boy(i); } } }).start(); for (int i = 1; i <= 50; i++) { sweethearts.girl(i); } } class Sweethearts { synchronized void boy(int i) { System.out.println("我好想见到一个女孩呀,怎么没有呢!,次数: " + i); } synchronized void girl(int i) { System.out.println("怎么这条路上男孩子都没有一个呢!死哪了...,次数: " + i); } } }
运行结果:
怎么这条路上男孩子都没有一个呢!死哪了...,次数: 1 怎么这条路上男孩子都没有一个呢!死哪了...,次数: 2 怎么这条路上男孩子都没有一个呢!死哪了...,次数: 3 怎么这条路上男孩子都没有一个呢!死哪了...,次数: 4 怎么这条路上男孩子都没有一个呢!死哪了...,次数: 5 怎么这条路上男孩子都没有一个呢!死哪了...,次数: 6 怎么这条路上男孩子都没有一个呢!死哪了...,次数: 7 我好想见到一个女孩呀,怎么没有呢!,次数: 1 我好想见到一个女孩呀,怎么没有呢!,次数: 2 我好想见到一个女孩呀,怎么没有呢!,次数: 3 我好想见到一个女孩呀,怎么没有呢!,次数: 4 我好想见到一个女孩呀,怎么没有呢!,次数: 5 我好想见到一个女孩呀,怎么没有呢!,次数: 6 我好想见到一个女孩呀,怎么没有呢!,次数: 7 我好想见到一个女孩呀,怎么没有呢!,次数: 8 我好想见到一个女孩呀,怎么没有呢!,次数: 9 我好想见到一个女孩呀,怎么没有呢!,次数: 10 我好想见到一个女孩呀,怎么没有呢!,次数: 11 我好想见到一个女孩呀,怎么没有呢!,次数: 12 ....
它们之间没有交互的行为,就好像二个陌生人一样,各做各的,你们相识吧!
场景二 :要求二个线程之间相互交互
public class SweetheartsTest2 { public static void main(String[] args) { new SweetheartsTest2().init(); } private void init() { final Sweethearts bb = new Sweethearts(); // 这个类的二个方法,相互交互,很好的运用了wait与notify new Thread(new java.lang.Runnable() { public void run() { for (int i = 1; i <= 50; i++) { bb.boy(i); } } }).start(); for (int i = 1; i <= 50; i++) { bb.girl(i); } } class Sweethearts { boolean tag = false; synchronized void boy(int i) { //判断是否被女孩唤醒 while (!tag) { try { //继续等待女孩发问 wait(); } catch (InterruptedException e) { e.printStackTrace(); } } //女孩问了,男孩回答 System.out.println("男孩说到:我叫刘风!"); //设置为等待女孩发问的标记 tag = false; //唤醒女孩发问 notify(); } synchronized void girl(int i) { //判断是否被男孩唤醒 while (tag) { try { //等待男孩的回答 wait(); } catch (InterruptedException e) { e.printStackTrace(); } } //男孩回答完了,女孩又问他 System.out.print("女孩问到:Hello,小子叫什么名字呢!"); //设置为等待男孩回答的标记 tag = true; //唤醒男孩回答问题 notify(); } } }
运行结果如下:
女孩问到:Hello,小子叫什么名字呢!男孩说到:我叫刘风! 女孩问到:Hello,小子叫什么名字呢!男孩说到:我叫刘风! 女孩问到:Hello,小子叫什么名字呢!男孩说到:我叫刘风! 女孩问到:Hello,小子叫什么名字呢!男孩说到:我叫刘风!
它们之间很好的进行了交互,一问一答,多么有趣呀
发表评论
-
java json-lib & jQuery & jsonp
2016-06-30 11:31 771参考链接: 1、http://hanqunfeng.iteye ... -
随机分配算法(Intege)
2016-01-08 13:05 5137参考资料: http://blog.csdn.net/yaer ... -
XSS之xssprotect
2012-12-07 23:03 29347参考资料 1 跨网站脚本 ... -
Java之Thread(线程题)
2011-10-31 12:33 1942特别说明:java线程相关的参考了张孝祥老师的代码 参考资料 ... -
Java之ThreadLocal(Synchronized)
2011-10-31 10:10 2640参考资料 1 深入研究java.lang.ThreadLoca ... -
Java之synchronized深入应用
2011-10-23 08:03 1904参考资料 1 java synchronized详解 http ... -
Java之Timer入门
2011-10-11 15:32 1647参考资料 1 java中timer用 ... -
Java之线程(匿名内部类)
2011-10-10 16:36 163591 Thread对象 Thread t = new Thr ... -
Java之线程(join)
2011-10-10 15:39 1420运用场景:多个线程之间 ... -
Java之线程(synchronized,wait(),notify(),notifyAll())
2011-10-10 15:03 3196参考资料 Java多线程入门大全(适用于有一定基础者) htt ... -
Java之线程(sleep,线程名)
2011-10-10 13:09 9674参考资料 1 Java线程:创建与启动 http://lava ... -
Java之线程入门
2011-10-10 11:11 1500参考资料 1 Java线程:概 ... -
java之表反向生成类
2011-09-23 16:41 3409环境:XP+JDK1.5+Oracle10g 注意事项 1 请 ... -
java之线程, NIO学习资料
2011-09-19 12:13 1090Concurrent In Java 6 第一部分 集合 ... -
Java之BigDecimal
2011-09-15 10:12 17941参考资料 1 java.math.BigDecimal的用法 ... -
java.lang.OutOfMemoryError异常解决方法
2011-08-27 16:47 2053转载:java.lang.OutOfMemoryError异常 ... -
Jcom之jp.ne.so_net.ga2.no_ji.jcom.JComException: createInstance() failed HRESULT=
2011-08-25 12:33 11634参考资料 java应用jcom将word转pdf http:/ ... -
Quartz之AnnualCalendar
2011-08-11 17:14 5764问题1 我想排除一年中 ... -
Quartz之InterruptableJob
2011-08-11 11:03 11728问题1 由于业务需要,停止Quartz中正在执行的任务 Qua ... -
Quartz之JobExecutionException
2011-08-11 10:06 13299问题1 如果你的任务执 ...
相关推荐
java多线程下wait和notify的作用
java同步synchronized关键字用法示例
java中synchronized用法
java锁机制Synchronized java锁机制Synchronized java锁机制Synchronized java锁机制Synchronized
java里面synchronized用法
java中synchronized的使用,java中的锁锁的到底是什么?是括号里的代码块吗?肯定不是的;
主要介绍了Java使用synchronized实现互斥锁功能,结合实例形式分析了Java使用synchronized互斥锁功能简单实现方法与操作技巧,需要的朋友可以参考下
在 Java 中可以用 wait、notify 和 notifyAll 来实现线程间的通信。。举个例子,如果你的Java程序中有两个线程——即生产者和消费者,那么生产者可以通知消费者,让消费者开始消耗数据,因为队列缓冲区中有内容待...
java synchronized的一些小实验,对帮助理解synchronized的使用有一定的帮助。
测试java中synchronized到底锁住了什么,完整demo
synchronized的几种示例研究,方法加锁,代码块加锁(this和对象)以及静态方法加锁的示例和效果。基本上包含了synchronized的几种常用的方式。
[JAVA][synchronized的使用]
Java语言提供了专门机制以解决这种冲突,有效避免了同一个数据对象被多个线程同时访问。 需要明确的几个问题: synchronized关键字可以作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句...
Java-synchronized详解.docx
java_synchronized详解 Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。
java基本教程之synchronized关键字java多线程教程共19页.pdf.zip
java多线程编程核心技术synchronized实例大全,同步方法,同步语句块,类锁,对象锁全都用代码来展现出来
ava中的关键字synchronized是一种用于实现线程同步的机制。它可以确保在同一时刻,只有一个线程能够访问被synchronized修饰的代码块或方法。这种机制可以有效地避免多线程环境下的数据竞争和不一致问题。 在Java中...
本文档主要讲述的是java synchronized详解;Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。