- 浏览: 463118 次
- 性别:
- 来自: 广州
文章分类
- 全部博客 (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 thread; import java.util.ArrayList; import java.util.List; public class ArrayListTest { public static final int Storge_Size = 100; public static void main(String[] args) { ArrayListStorge storge = new ArrayListStorge(); P p = new P(storge); M m = new M(storge); Thread t1 = new Thread(p); Thread t2 = new Thread(p); Thread t3 = new Thread(p); Thread t4 = new Thread(p); Thread t5 = new Thread(m); Thread t6 = new Thread(m); Thread t7 = new Thread(m); Thread t8 = new Thread(m); t1.start(); t2.start(); t3.start(); t4.start(); t5.start(); t6.start(); t7.start(); t8.start(); } } class ArrayListStorge{ private List<Integer> list = new ArrayList<Integer>(ArrayListTest.Storge_Size); private int num = 1; public synchronized void set(ArrayListStorge s){ while(s.list.size()>=ArrayListTest.Storge_Size){ try { this.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } s.list.add(num++); System.out.println(Thread.currentThread().getName()+"--存入----"+list.get(s.list.size()-1)); if(s.list.size()>0){ this.notifyAll(); } } public synchronized void out(ArrayListStorge s){ while(s.list.size()<=0){ try { this.wait(); } catch (InterruptedException e) { e.printStackTrace(); } } System.out.println(Thread.currentThread().getName()+"--取出....."+s.list.remove(s.list.size()-1)); if(s.list.size()<ArrayListTest.Storge_Size){ this.notifyAll(); } } } class P implements Runnable{ private ArrayListStorge storge; public P (ArrayListStorge s){ this.storge = s; } public void run(){ while(true){ this.storge.set(storge); } } } class M implements Runnable{ private ArrayListStorge s; public M(ArrayListStorge s){ this.s = s; } public void run(){ while(true){ this.s.out(s); } } }
发表评论
-
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 446java 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 858package threadTest; public ... -
线程范围内的共享数据 ThreadLocal 分析与详解
2014-08-30 19:21 815Java 线程范围内的数据共享机制,需要解决的问题是 : 多 ...
相关推荐
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 for Linux 是IBM公司针对Java Development Kit (JDK)的一个特定版本,专为Linux操作系统设计。在Java开发和运行环境中,JDK是核心组件,它包含了Java虚拟机(JVM)、编译器、类库以及其他工具,使得开发者...
《Ivor Horton’s Beginning Java™ 2, JDK™ 5 Edition》是一本非常适合初学者学习Java 5.0的入门书籍。通过本书的学习,不仅可以了解Java的基本语法和面向对象编程的核心概念,还能深入掌握Java 5.0引入的重要新...
extends T`用于表示生产者(Producer),适合于读取操作,因为你可以从这样的集合中取出`T`类型或其子类的对象。 - `? super T`用于表示消费者(Consumer),适合于写入操作,因为你可以向这样的集合中添加`T`类型...
全部代码出自电子工业出版社夏先波的《Java JDK实例宝典》一书,本书以J2SE 5.0为开发环境,选取Java应用的典型实例,循序渐进地介绍了Java语言的各种开发方法和技巧,实例代码注释详细规范,思路清晰。 第1章 ...
生产者、消费者问题;线程的优先级;列出虚拟机中所有的线程;守护线程Daemon;线程池;一个死锁的例子; 定时器Timer:包括在指定时间执行任务,在指定时间之后执行任务以及在某个时间之后每隔时间段重复执行的任务...
- **阻塞队列(Blocking Queues)**:如`ArrayBlockingQueue`和`LinkedBlockingQueue`,在生产者消费者模式中广泛应用,线程安全且高效。 - **并发集合(Concurrent Collections)**:如`ConcurrentHashMap`、`...
这种特性在多线程环境中非常有用,特别是在实现生产者-消费者模式时。 ##### 3.3.2 使用ConcurrentMap实现类 `ConcurrentHashMap`是`ConcurrentMap`的主要实现类,它提供了线程安全的哈希表实现,允许多个线程并发...
9. Java并发:包括创建线程的三种方式、Synchronized关键字和ReentrantLock的使用、线程池的使用、死锁的处理、生产者/消费者模式等并发编程的核心概念。 10. Java虚拟机:讨论了对象的创建、内存布局、访问定位,...
3. **Joshua Bloch** - 作为Google的首席Java架构师,Bloch在Sun Microsystems时领导了Java平台的关键特性开发,如JDK 5.0的语法增强和Java集合框架。他的著作《Effective Java》和《Java Concurrency in Practice》...
JDK 5.0 & 6.0 新特性 - **泛型**:增强类型安全性,减少强制类型转换。 - **枚举**:提供了一种定义一组命名常量的方法。 - **可变参数**:方法可以接受任意数量的同类型参数。 - **增强的 for 循环**:简化了...
- 阻塞队列(BlockingQueues)及其在生产者-消费者模式中的应用。 5. **高级并发设计模式** - Future与Callable接口的使用,以及FutureTask类的作用。 - Executor框架的原理与ExecutorService接口的实现。 - ...
9. **JDK5.0新增线程创建方式**: - 使用`ExecutorService`和`Callable`接口来创建和管理线程池。 - 使用`FutureTask`类来包装一个`Callable`对象,并将其提交到`ExecutorService`中执行。 #### 二、企业真题解析...
16.4.5 “生产者-消费者”案例的实际运行 365 16.4.6 notify方法的使用 366 16.4.7 同步的语句块 367 16.4.8 线程的死锁 369 16.4.9 防止错误的使用wait、notify、notifyAll方法 371 16.5 获取当前正在...