- 浏览: 463245 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (369)
- javascript html (20)
- java (31)
- jquery (15)
- jcrop (0)
- JEECG (1)
- ajax (3)
- 反射 (3)
- VI (1)
- mysql (48)
- easyui (1)
- svn (2)
- MD5 加密 (1)
- spring (14)
- ORACLE (8)
- 经验总结 (1)
- TCP/IP协议 (1)
- ICMP协议 (1)
- eclipse (1)
- Reflect (1)
- linux (21)
- android (5)
- excel 操作 (1)
- java tree (1)
- html (1)
- plupload (1)
- mongodb (9)
- aes (1)
- python (1)
- java relax (1)
- highcharts (2)
- json (2)
- java 多线程 (30)
- maven (2)
- 设计模式 (1)
- jsp+js (2)
- 面向对象 (1)
- jvm (16)
- 缓存 (1)
- proxy (1)
- 聊侃 (1)
- 面经 (1)
- java 字节 (1)
- java 类加载器 (2)
- java 基础 (2)
- java 语法糖 (1)
- java 位运算 (1)
- 排序 (3)
- java 服务器性能优化 (19)
- 网络编程 (2)
- jvm 参数设置 (0)
- jersey (1)
- webservice (2)
- nginx+多tomcat 集成 (5)
- nginx (16)
- squid (3)
- memcached (5)
- 正则表达式 (1)
- 常用免费接口 (1)
- jpa (1)
- win7 (1)
- java处理大文件 (1)
- js正则表达式 (1)
- tomcat (1)
- java 敏感字 (1)
- 系统架构优化 (4)
- 学习 (1)
- 本地测试QQ微博第三方登陆 (1)
- java 错误 (1)
- 微信支付 (1)
- https (1)
- httpclient (1)
- awk (2)
- loadrunner (1)
- sql server 2008 (3)
- git (4)
- sql server2008 (1)
- solr (2)
- centos (1)
- 数据存储架构 (3)
- log4j (1)
- weboffice (1)
- 并发编程 (1)
- postgreSQL (0)
- ssl (1)
- openssl (1)
- activeMQ (2)
- IDEA (1)
- shell (1)
- ansible (4)
- docker (2)
- grafana (1)
- jmeter (1)
- TLS (1)
- 将博客搬至CSDN (1)
最新评论
-
dida1990:
啊喔,过去了这么久,不过还是评一个。谁说uuid的hashCo ...
高并发生成订单号(二) -
annan211:
yclovesun 写道使用了uuid,为什么还要machin ...
高并发生成订单号(二) -
yclovesun:
使用了uuid,为什么还要machineId?uuid已经可以 ...
高并发生成订单号(二) -
u013280917:
太深奥,看不懂
mysql优化特定类型的查询
package threadJDK5; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class ThreadTestJDK5 { public static void main(String[] args) { Resource r = new Resource(); Producer p = new Producer(r); Consumer c = new Consumer(r); Thread t1 = new Thread(p); Thread t2 = new Thread(c); t1.start(); t2.start(); } } class Resource{ private String name; private int num; private boolean flag; private Lock lock = new ReentrantLock(); private Condition condition_pro = lock.newCondition(); public void set(Resource r) throws InterruptedException{ lock.lock(); if(!r.flag){ if(num % 2 == 0){ this.name = "张三------" + num++; }else{ this.name = "丽丽------" + num++; } System.out.println("生产..."+this.name); r.flag = true; condition_pro.signal(); }else{ try { condition_pro.await(); } finally{ lock.unlock(); } } } public void out(Resource r) throws InterruptedException{ lock.lock(); if(r.flag){ System.out.println("消费..."+r.name); r.flag = false; condition_pro.signal(); }else{ try { condition_pro.await(); } finally{ lock.unlock(); } } } } class Producer implements Runnable{ private Resource r; public Producer(Resource r){ this.r = r; } public void run(){ while(true){ try { r.set(r); } catch (InterruptedException e) { e.printStackTrace(); } } } } class Consumer implements Runnable{ private Resource r; public Consumer(Resource r){ this.r = r; } public void run(){ while(true){ try { r.out(r); } catch (InterruptedException e) { e.printStackTrace(); } } } }
发表评论
-
java 多线程操作数据库 及 静态bean注入
2018-01-09 10:47 923package com.robustel.rlink.de ... -
Amino 框架简介
2014-10-17 11:30 1431对数据加锁是实现多线程的一种策略,但是加锁无疑会增加系 ... -
Java 重入锁(ReentrantLock)和内部锁(synchronized)
2014-10-16 15:44 1599ReentrantLock 和 synchronize的 ... -
Java 锁分离
2014-10-16 15:35 1339读写锁思想的延伸就是锁分离。读写锁根据读写操作功能上 ... -
java 高性能运算-- 双端队列
2014-10-15 16:04 1051JDK 1.6中 提供了一种双端队列,简称 Dequ ... -
java 高性能运算--并发队列
2014-10-15 15:33 2493JDK 提供了两套并发队列的实现,一个是以 Conc ... -
并发模式下的单例创建
2014-09-29 16:20 792单例模式的创建 分为 ... -
Java 同步集合的应用
2014-09-14 23:45 0Java 同步集合的应用 -
java 阻塞队列的应用
2014-09-14 23:44 0java 阻塞队列的应用 -
java 多线程集合
2014-09-14 23:28 0java 多线程集合 -
java Exchanger 线程数据交换
2014-09-14 22:56 0java Exchanger 线程数据交换 -
java CountDownLatch 实例
2014-09-15 18:07 855Java的concurrent包里面的CountDownLat ... -
java 多线程之 CyclicBarrier
2014-09-13 19:25 821CyclicBarrier (周期障碍)类可以帮助同步,它允许 ... -
java CyclicBarrier 循环阻塞
2014-09-12 22:43 447java CyclicBarrier 循环阻塞 -
java 多线程的锁消除
2014-09-12 18:31 1251Java 中使用同步 来保证数据的安全性,但是对于一些明显不会 ... -
java锁的种类以及辨析(一):自旋锁
2014-09-12 16:22 1636Java的多线程安全是基于Lock机制(或者隐式锁synchr ... -
Java锁的种类以及辨析
2014-09-12 15:15 1579锁作为并发共享数据,保证一致性的工具,在java平台有多种实现 ... -
java Semaphore 信号量详解和实例
2014-09-12 11:51 2157生产者线程用于往链表里添加节点,数个工作线程从链表取出节点并处 ... -
4个线程,2个每次加1,两个每次减1
2014-09-01 23:44 859package threadTest; public ... -
线程范围内的共享数据 ThreadLocal 分析与详解
2014-08-30 19:21 815Java 线程范围内的数据共享机制,需要解决的问题是 : 多 ...
相关推荐
在JDK 1.5及以后的版本中,Java引入了`java.util.concurrent`包,其中包含了一些强大的并发工具类,如`Lock`接口和`Condition`接口,这些工具大大提升了生产者消费者模式的实现效率和线程安全性。 生产者消费者模式...
JDK1.5,也被称为Java SE 5.0(Java Standard Edition 5.0),是Sun Microsystems在2004年发布的一个重要版本,引入了许多关键性的新特性和改进,对于Java的发展具有里程碑式的意义。 1. **泛型(Generics)** JDK...
1.5版本,也被称为Java SE 5.0,是一个重要的里程碑,引入了许多创新性的改变,提升了Java的性能、可维护性以及开发者的生产力。 1. **泛型**:JDK 1.5引入了泛型,允许在定义类、接口和方法时指定参数类型,提高了...
IBM JDK 1.5,也被称为Java 5.0,是一个重要的版本升级,引入了多项新特性和改进。以下是这个版本的一些关键知识点: 1. **泛型(Generics)**:这是Java 5.0的重大特性,允许在类型定义时指定参数化类型,提高了...
《Ivor Horton’s Beginning Java™ 2, JDK™ 5 Edition》是一本非常适合初学者学习Java 5.0的入门书籍。通过本书的学习,不仅可以了解Java的基本语法和面向对象编程的核心概念,还能深入掌握Java 5.0引入的重要新...
生产者/消费者问题JDK5.0新增线程创建方式创建多线程的方式三:实现Callable接口使用线程池的好处创建多线程的方式四:使用线程池 原文:https://shimo.im/docs/KGCJKyrgG8rtXj3G/ 《第8章 多线程》 第8章
extends T`用于表示生产者(Producer),适合于读取操作,因为你可以从这样的集合中取出`T`类型或其子类的对象。 - `? super T`用于表示消费者(Consumer),适合于写入操作,因为你可以向这样的集合中添加`T`类型...
全部代码出自电子工业出版社夏先波的《Java JDK实例宝典》一书,本书以J2SE 5.0为开发环境,选取Java应用的典型实例,循序渐进地介绍了Java语言的各种开发方法和技巧,实例代码注释详细规范,思路清晰。 第1章 ...
- **阻塞队列(Blocking Queues)**:如`ArrayBlockingQueue`和`LinkedBlockingQueue`,在生产者消费者模式中广泛应用,线程安全且高效。 - **并发集合(Concurrent Collections)**:如`ConcurrentHashMap`、`...
- 生产者和消费者无需在同一时间在线。 - **发布/订阅模型** (Topic) - 发布者将消息发布到特定的主题上,订阅者可以选择订阅这些主题来接收消息。 - 发布者和订阅者之间是匿名的,即他们不知道对方的存在。 - ...
- **性能**:JDK 5.0之后,synchronized进行了大量优化,但在某些场景下ReentrantLock仍然具有性能优势。 - **使用场景**:synchronized适用于简单同步需求;ReentrantLock适用于复杂同步逻辑。 **3.2 为什么说...
生产者、消费者问题;线程的优先级;列出虚拟机中所有的线程;守护线程Daemon;线程池;一个死锁的例子; 定时器Timer:包括在指定时间执行任务,在指定时间之后执行任务以及在某个时间之后每隔时间段重复执行的任务...
- 通过java.util.concurrent包下的BlockingQueue实现,可以创建生产者消费者模型。 - 阻塞队列包括ArrayBlockingQueue、LinkedBlockingQueue、PriorityBlockingQueue、DelayQueue等,提供线程安全的队列操作。 7....
3. **Joshua Bloch** - 作为Google的首席Java架构师,Bloch在Sun Microsystems时领导了Java平台的关键特性开发,如JDK 5.0的语法增强和Java集合框架。他的著作《Effective Java》和《Java Concurrency in Practice》...
### Eclipse+Tomcat的安装与配置详解 #### 一、前言 本文旨在详细介绍如何安装配置Eclipse与Tomcat,使读者能够顺利地在本地环境中搭建起...此外,对于生产环境,还需考虑安全性、稳定性等因素,进行更为细致的配置。
9. Java并发:包括创建线程的三种方式、Synchronized关键字和ReentrantLock的使用、线程池的使用、死锁的处理、生产者/消费者模式等并发编程的核心概念。 10. Java虚拟机:讨论了对象的创建、内存布局、访问定位,...
- **生产者与消费者:** 生产者发送消息,消费者接收消息。 - **目的地:** 指消息队列或主题,是消息的最终目标。 #### RPC (Remote Procedure Call Protocol) **简介:** RPC,即远程过程调用协议,是一种通过...
特别地,JDK5.0的新特性如自动装箱、枚举、泛型和可变参数等,对于理解现代Java编程至关重要。 2. **UNIX开发环境**: 对于在UNIX平台上进行开发的开发者,掌握基本的UNIX命令和系统工作原理是必要的。这包括文件...
在JDK5.0之后,Java引入了一系列高级并发特性,其中多数特性集中于`java.util.concurrent`包内,旨在为多线程并发编程提供强大的工具集。这一包不仅充分利用了现代多处理器和多核系统的优势,而且极大地简化了大规模...