- 浏览: 1589905 次
- 来自: 上海
文章分类
- 全部博客 (374)
- Java (101)
- Struts (54)
- Oracle (30)
- JavaScript (16)
- Spring (27)
- Hibernate (16)
- MyEclipse (3)
- JSF (1)
- FreeMarker (2)
- SiteMesh (2)
- JfreeChart (2)
- Ibatis (2)
- JSP (12)
- MyBatis (4)
- SWFupload (1)
- EJB (4)
- Jboss (4)
- WebService (2)
- Linux (16)
- Android (2)
- XML (6)
- Java 网络编程 (13)
- AXIS2 (1)
- FTP (1)
- Jswing (1)
- Socket (3)
- 杂文选集 (6)
- solr (2)
- PS (1)
- Tomcat (7)
- JDBC (9)
- Highcharts (1)
- maven (1)
- Nodejs (0)
- navicat (2)
- Exception (5)
- eclipse (3)
- jQuery (1)
- springMVC (4)
- MySQL (11)
- SVN (1)
- Sql Server (1)
- zookeeper (1)
- JVM (1)
- Groovy (2)
- Git (1)
- Nginx (1)
- DynamicReport (1)
- IDEA (2)
- JasperReports (1)
- Postgresql (2)
- Mac (1)
- gradle (1)
- 数据结构算法 (1)
最新评论
-
hpu145:
引用引用
java 千分位的添加和去除 -
被遗忘的下路:
少了个junit-4.8.2的包
SSH2整合完整案例(四十三) -
白天看黑夜:
java过滤emoji字符处理,希望能帮到你http://ww ...
emoji 表情图片解决方法 -
caipeiming:
这个挺好JavaScript实现input输入框控件只允许输入 ...
js 控制文本框只能输入中文、英文、数字等 -
双子树:
东西太好啦受教啊
Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)
import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /** * 线程同步 synchronize */ public class TraditionalThreadSynchronized { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub new TraditionalThreadSynchronized().init(); } private void init(){ final Outputer out=new Outputer(); new Thread( new Runnable() { @Override public void run() { // TODO Auto-generated method stub while (true) { try { Thread.sleep(10); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } out.output("English"); } } } ).start(); new Thread( new Runnable() { @Override public void run() { // TODO Auto-generated method stub while (true) { try { Thread.sleep(10); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } out.output("Chinese"); } } } ).start(); } //使用各种 同步锁对象 this,.class ,Object ,Lock static class Outputer{ String sync=""; public void output(String name){ int len=name.length(); synchronized(this){ //只有是同一对象的时候才能用this,否则 只能用.class,或者 建立一个 static Object sycn for (int i = 0; i < len; i++) { System.out.print(name.charAt(i)); } System.out.println(); } } public synchronized void output2(String name){ //使用的是 this int len=name.length(); for (int i = 0; i < len; i++) { System.out.print(name.charAt(i)); } System.out.println(); } public static synchronized void output3(String name){ //使用的是 .class int len=name.length(); for (int i = 0; i < len; i++) { System.out.print(name.charAt(i)); } System.out.println(); } Lock lock=new ReentrantLock(); public void output4(String name){ int len=name.length(); lock.lock(); //使用 jdk 1.5 提供的锁 try { for (int i = 0; i < len; i++) { System.out.print(name.charAt(i)); } System.out.println(); } catch (Exception e) { // TODO: handle exception }finally{ lock.unlock(); } } } }
发表评论
-
检测一个字符串是否在jvm的常量池中
2018-12-18 17:34 998public static boolean inPool( ... -
UTC时间, GMT时间 ,夏令时
2017-08-18 15:12 2282经常混淆于此,特地研究了一下,记录在此以备忘。 整个地 ... -
java 反射List
2017-02-18 01:58 5654package com.enhance.reflect; ... -
JDK1.5 Exchange 两个线程互换数据
2016-08-04 18:00 986import java.util.concurrent ... -
JDK1.5 CountDownLatch
2016-08-04 16:25 1055/* * 还有一个利用场景: ... -
java CyclicBarrier 循环障碍阻塞
2016-08-03 23:54 1008//一个同步辅助类,它允许一组线程互相等待,直到到达某个公 ... -
java 信号灯 Semaphore
2016-08-03 23:53 1823更多介绍http://blog.csdn.net/java20 ... -
java 使用读写锁设计一个缓存模型
2016-08-03 23:49 1416import java.util.HashMap; ... -
java 读写锁
2016-08-03 23:46 815import java.util.Random; i ... -
java 多个线程之间同步通信
2016-08-02 17:16 2396import java.util.concurrent ... -
jdk1.5 锁 Lock 和 Condition
2016-08-02 17:03 925// lock 练习 public class Lock ... -
JDK1.5 获取线程执行结果 Callable Future
2016-08-02 15:08 1172import java.util.Random; i ... -
JDK1.5 线程池
2016-08-02 14:48 801import java.util.concurrent ... -
java 多线程ThreadLocal
2016-08-02 00:13 1145import java.util.Random; ... -
java 定时器 Timer
2016-08-01 16:53 3892import java.util.Calendar; ... -
java 多线程同步+通信
2016-08-01 16:48 964/** *父子线程 交替打印10 次, 100次 ... -
java多线程练习
2016-08-01 16:35 1840Java 传统多线程 Java 多线程同步 Java 多线 ... -
java 传统多线程
2016-08-01 16:34 1004/** * 传统多线程 */ public ... -
java 图片,剪切,缩放
2016-01-06 10:21 2230package out; import ja ... -
java术语(PO/POJO/VO/BO/DAO/DTO)
2014-11-27 11:45 1987PO(persistant object) 持久 ...
相关推荐
Java 线程同步控制机制 线程同步是 Java 编程中的一种机制,用于控制多个线程之间的资源访问顺序,以避免线程之间的冲突和数据不一致。线程同步的目的就是避免线程“同步”执行,即让多个线程之间排队操作共享资源...
总结一下,Java线程同步的关键点: 1. **线程同步是为了解决共享资源的并发访问问题,防止数据不一致和冲突。** 2. **同步意味着线程排队,依次访问共享资源,而不是同时访问。** 3. **只有共享变量(可变状态)才...
在深入探讨Java线程同步调用这一主题之前,我们首先需要理解线程同步的基本概念及其在多线程环境中的重要性。线程同步是多线程编程中的一个关键概念,它确保了多个线程在访问共享资源时不会发生冲突,避免了数据不...
Java线程同步与通信是多线程编程中的关键概念,用于解决并发访问共享资源时可能出现的数据不一致性和竞态条件问题。以下将详细介绍这两个主题,以及如何通过代码示例进行演示。 1. **线程同步**: 线程同步是确保...
java线程同步java线程同步java线程同步
本实例65着重讲解了Java线程同步的实现方法,帮助开发者理解和掌握如何在并发环境中保证代码的正确执行。 首先,我们要了解什么是线程。线程是程序中的执行流,每个线程都有自己的程序计数器、栈、局部变量和常量,...
在Java中,线程同步是保证多线程安全...上述Java线程同步例子中涉及到的代码虽然是片段,但涵盖了线程同步处理的多个重要方面,帮助我们理解和使用Java线程同步机制,以及在设计和实现多线程应用程序时的实践和技巧。
Java线程同步是Java编程中一个关键的概念,用于解决多线程环境下的数据一致性问题。在Java中,线程同步主要依赖于监视器(Monitor)机制,它支持两种线程行为:互斥和协作。 互斥是通过对象锁来实现的,确保在任意...
Java线程同步是一种控制多个线程访问共享资源的方式,确保数据的一致性和完整性。在这个例子中,我们将讨论如何使用`synchronized`关键字实现线程同步,以及它的工作原理。 首先,我们有两个类`ThreadDemo`和`...
Java线程同步是多线程编程中的一个关键概念,它涉及到如何在并发环境中控制线程对共享资源的访问,以避免数据不一致性和竞态条件等问题。在Java中,线程同步主要有以下几种机制: 1. **synchronized 关键字**: - ...
Java线程同步是多线程编程中的一个重要概念,其主要目的是确保多个线程在访问共享资源时能够有序进行,避免数据不一致性和竞态条件。在Java中,线程同步可以通过多种方式实现,如synchronized关键字、java.util....
Java线程同步是一种确保多个线程在访问共享资源时能够有序执行的技术,避免了数据的不一致性和竞态条件。在给定的示例中,通过两种方式展示了线程同步:synchronized方法和synchronized代码块。 首先,我们来看同步...
本文将详细解释Java线程同步的概念,并通过示例代码来说明其工作原理。 首先,我们需要理解Java中的两个主要同步机制:`synchronized`关键字和`wait()`, `notify()`, `notifyAll()`方法。`synchronized`关键字可以...
### Java线程同步详解 #### 一、同步问题的提出 在多线程环境中,当多个线程同时访问和修改同一个共享资源时,可能会导致数据的一致性和完整性问题。例如,考虑下面的一个简单示例: ```java public class Foo { ...