1.到底什么是线程?什么是进程? Python自己没有这玩意,Python中调用的操作系统的线程和进程. 2.Python多线程情况下: 计算密集型操作:效率低,Python内置的一个全局解释器锁,锁的作用就是保证同一时刻一个进程中只有一个线程可以被cpu调度,多线程无法利用多核优势,可以通过多进程 ...
分类:
编程语言 时间:
2019-02-04 12:51:01
阅读次数:
221
采用了BIO的多线程方案,实现了自定义简单协议,心跳机制,socket客户端身份强制验证,socket客户端断线获知等功能,并暴露了一些接口,可通过接口简单实现客户端与服务端的socket交互。 ...
分类:
其他好文 时间:
2019-02-01 01:12:18
阅读次数:
274
乐观锁介绍: 乐观锁( Optimistic Locking ) 相对悲观锁而言,乐观锁假设认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则让返回用户错误的信息,让用户决定如何去做。那么我们如何实现乐观锁呢,一般来说有以下2种方式: ...
分类:
数据库 时间:
2019-01-31 16:57:10
阅读次数:
212
在日常开发中,我们经常会用到时间,我们有很多办法在Java代码中获取时间。但是不同的方法获取到的时间的格式都不尽相同,这时候就需要一种格式化工具,把时间显示成我们需要的格式。最常用的方法就是使用SimpleDateFormat类。这是一个看上去功能比较简单的类,但是,一旦使用不当也有可能导致很大的问题。在阿里巴巴Java开发手册中,有如下明确规定:那么,本文就围绕SimpleDateFormat的
分类:
其他好文 时间:
2019-01-24 17:18:27
阅读次数:
151
需求一个简单的需求,提交大量数据到远程服务器,此时并不需要等待返回。另一个需求,获取API数据,同时查询数据库,并行处理,加快响应速度。配置问题set_time_limitignore_user_abortfastcgi_finish_request只是结束会话后继续执行,并没有并发,勉强非阻塞curl无法非阻塞,只能等待,可以并发https://github.com/guzzle/guzzle/
分类:
Web程序 时间:
2019-01-17 23:51:06
阅读次数:
339
在并发队列上JDK提供了两套实现,一个是以ConcurrentLinkedQueue为代表的高性能队列,一个是以BlockingQueue接口为代表的阻塞队列,无论哪种都继承自Queue接口! ConcurrentLinkedQueue: 是一个适用于高并发场景下的队列,通过无锁的方式,实现了高并发 ...
分类:
其他好文 时间:
2018-12-26 13:29:27
阅读次数:
172
方式一:/** * 使用非阻塞队列PriorityQueue及wait/notify方法实现一个阻塞队列**/class MyBlockingQueue { public final static int queueSize = 10; public static final PriorityQue ...
分类:
编程语言 时间:
2018-12-24 20:57:31
阅读次数:
218
概要 Locking read( SELECT ... FOR UPDATE or SELECT ... LOCK IN SHARE MODE),UPDATE以及DELETE语句通常会在他扫描的索引所有范围上加锁,忽略没有用到索引的那部分where语句。举个例子: CREATE TABLE `tes ...
分类:
数据库 时间:
2018-12-24 13:50:38
阅读次数:
181
一、简介 Java提供了FIFO先进先出的阻塞队列实现,这其实是一种生产者消费者理念,可以通过阻塞队列将生产者和消费者进行解耦合。 LinkedBlockQueue是一种无界队列,但事实上它只是队列可容纳的最大值很大。通常,我们为了防止特殊情况,都会给队列设置一个边界。 JDK文档:http://t ...
分类:
数据库 时间:
2018-12-23 20:49:35
阅读次数:
333
现代软件开发中并发已经成为一项基础能力,而Java精心设计的高效并发机制,正是构建大规模应用的基础之一。本文中我们将学习synchronized关键字的基本用法。 synchronized是Java内建的同步机制,也称为Intrinsic Locking,它提供了互斥的语义和可见性,当任务要执行被s ...
分类:
其他好文 时间:
2018-12-22 21:56:10
阅读次数:
189