Java调用Python, 中文乱码

Java调用Python可以写成如下形式: // 调用Python代码 Process process = Runtime.getRuntime().exec("python python_code.py"); // 设置输入流的编码格式 InputStreamReader isr = new I

Java之ConcurrentMap

什么是ConcurrentMap? 提供线程安全和原子保证的Map 主要实现类? ConcurrentHashMap 线程安全 采用CAS(Compare and Swap)技术保证同步, 链表情况下通过synchronized加锁来保证线程安全。具体可参见putVal方法: final V put

Java之ThreadPoolExecutor

为什么需要线程池? 我们有两种常见的创建线程的方法,一种是继承Thread类,一种是实现Runnable的接口,Thread类其实也是实现了Runnable接口。但是我们创建这两种线程在运行结束后都会被虚拟机销毁,如果线程数量多的话,频繁的创建和销毁线程会大大浪费时间和效率,更重要的是浪费内存。那么

Java之BlockingDeque

什么是BlockingDeque? BlockingDeque是继承BlockingDeque的接口,是一个基于链表的双端阻塞队列。 BlockingDeque主要方法行为 像BlockingQueue一样,BlockingDeque是线程安全的, 也不接受null元素,BlockingDeque可

Java之BlockingQueue

什么是BlockingQueue? BlockingQueue是继承Queue的接口。 BlockingQueue在Queue的基础上增加了两个阻塞行为:当获取队列元素但队列为空时,会阻塞等侍队列中元素再返回;也支持增加元素时,如何队列已满,那么会等待队列有空间时再放入。 BlockingQueue

Java之TransferQueue

什么是TransferQueue? TransferQueue是继承BlockingQueue的接口。 BlockingQueue是生产者等待消费者接收元素,而TransferQueue支持生产者等待消费者接收(transfer(E)),也支持直接加入队列不需要消费者接收(put(E))。Non-b