java多线程
文章平均质量分 51
H钟L1998
这个作者很懒,什么都没留下…
展开
-
java写一个简单的死锁程序
java写一个简单的死锁程序package com.hzl.java.Thread;public class DeanLock { public static void main(String[] args) { new Thread(() -> { try { System.out.println("thread1 is running"); synchr...原创 2018-10-15 20:12:39 · 5165 阅读 · 0 评论 -
Java线程实现生产者—消费者模式
Java 线程实现生产者-消费者模式##思路:实现类似消费者生产者线程之间通讯的功能,每创建一个工人,就让这个工人干活,干一段时间,工人自动消失,然后又去创建一个工人干活;代码如下:在这里插入代码片...原创 2018-10-16 20:32:38 · 226 阅读 · 0 评论 -
Java多线程之读写锁 ReentrantReadWriteLock
Java多线程之读写锁 ReentrantReadWriteLock,读写锁**可以同时执行读操作,但是只能一个线程执行写的操作。读锁和写锁之间是互斥的,读锁和写锁联合在一起用才能起作用, 如果有一个线程已经占用了读锁,则此时其他线程如果要申请写锁,则申请写锁的线程会一直等待释放读锁。如果有一个线程已经占用了写锁,则此时其他线程如果申请写锁或者读锁,则申请的线程会一直等待释放写锁。原创 2018-10-27 09:58:53 · 259 阅读 · 0 评论 -
Java基于tcp的文件分割上传
Java基于tcp的文件分布式上传网络上传文件的时候,当一个文件很大时,就需要将文件分割成几个文件,以便于网络传输。用java来实现这个功能,当传输文件时,将文件在本地分成多个文件,然后在上传到服务器。基于tcp实现这个功能,代码如下:UploadService.javapackage com.hzl.java.uploadFile;import java.io.DataInputStr...原创 2018-10-27 11:40:13 · 513 阅读 · 0 评论 -
Java 使用动态代理和观察者模式+threadlocal实现数据库连接池
当我们使用数据库连接池时,如果多线程连接数据库时,当超过5个线程连接数据库时,那么在第6个线程包括之后就连接不到数据库了,该怎么处理。由于因为连接池的数量发生变化时,要去重新创建新的连接,所以这里使用了观察者模式,创建观察者和被观察者。当连接池的数量为空时,则就通知观察者去重新创建新的连接。当然为了在多线程环境下,防止自己的连接被其它线程篡改,导致线程不安全,这里使用了ThreadLocal。原创 2018-11-09 13:45:26 · 893 阅读 · 1 评论 -
Java使用动态代理编写数据库连接池
在上一篇博客中,将5个连接放到栈里,当做数据库连接池使用,加快了效率。代码如下:import java.sql.Connection;import java.sql.DriverManager;import java.util.ResourceBundle;import java.util.Stack;public class DataPool { private static St...原创 2018-11-07 20:29:27 · 329 阅读 · 0 评论