1.在一个程序当中代码段访问了同一个对象从单独的并发的线程当中,那么这个代码段叫”临界区”怎么解决呢:使用同步的机制对临界区进行保护同步的两种方式:同步块和同步方法对于同步来说都是使用synchronized方法每一个对象都有一个监视器,或者叫做锁。java用监视器机制实现..
分类:
编程语言 时间:
2016-12-29 23:35:20
阅读次数:
344
greenlet间同步方法:信号量 1.为什么引入信号量; 2.gevent信号量有哪些; 3.编程实现。 为何引入信号量 信号量是一个允许Greenlet相互合作,限制并发访问或运行的低层次的同步原语。 什么是信号量 1.信号量有两个方法 acquire和release。在信号量是否已经被 acq ...
分类:
其他好文 时间:
2016-12-20 20:36:37
阅读次数:
156
Stream 类 先看下面的图 Stream 是所有流的抽象基类(不能被实例化,需要使用他的派生类FileStream/MemoryStream/BufferedStream)。流是字节序列的抽象概念,例如文件、输入/输出设备、内部进程通信管道或者 TCP/IP 套接字。Stream 类及其派生类提 ...
分类:
其他好文 时间:
2016-12-16 22:31:11
阅读次数:
275
方法一:忽略错误后,继续同步该方法适用于主从库数据相差不大,或者要求数据可以不完全统一的情况,数据要求不严格的情况解决:stopslave;#表示跳过一步错误,后面的数字可变setglobalsql_slave_skip_counter=1;startslave;之后再用mysql>showslavestatus\G查看:Slave_IO_..
分类:
数据库 时间:
2016-12-14 14:39:13
阅读次数:
179
1、Lock 只能对引用对象加锁 Lock锁定区间内可以对锁定值修改而不发生运行时错误,通常也会采用此种修改方式。这种方式又有点类同于使用Monitor.Wait取得资源,并对这个资源进行操作。 用法: private static readonly object locktask= new obj ...
分类:
其他好文 时间:
2016-12-12 23:36:10
阅读次数:
220
假设客户端分别发送了两个数据包D1和D2给服务器,由于服务器端一次读取到的字节数是不确定的,所以可能发生四种情况: 1、服务端分两次读取到了两个独立的数据包,分别是D1和D2,没有粘包和拆包。 2、服务端一次接收到了两个数据包,D1和D2粘合在一起,被称为TCP粘包。 3、服务端分两次读取到了两个数 ...
分类:
Web程序 时间:
2016-12-09 07:43:08
阅读次数:
287
被这个坑坑得刻骨铭心!死锁问题的确是由于在构造函数中同步调用异步方法引起的。目前 System.Net.NameResolution 只提供了异步的 API 进行主机名的解析,上面的 GetHostEntry() 是同步方法,但只支持 netstandard 2.0 ...
分类:
编程语言 时间:
2016-12-05 01:48:16
阅读次数:
482
利用 async & await 进行异步 IO 操作 可以使用异步函数访问文件。使用异步功能,可以调用异步方法,而不使用回调或拆分您在多个方法或 lambda 表达式中的代码。 若要使同步代码异步,则调用异步方法而不是一个同步方法并添加几个关键字到代码中。 您可能认为添加的以下原因 asynchr ...
分类:
Web程序 时间:
2016-11-20 16:01:55
阅读次数:
151
我们常用wait(),notify()和notifyAll()方法来进行线程间通信。线程检查一个条件后就行进入等待状态,例如,在“生产者-消费者”模型中,生产者线程发现缓冲区满了就等待,消费者线程通过消费一个产品使得缓冲区有空闲并通知生产者线程。notify()或notifyAll()的调用给一个或 ...
分类:
其他好文 时间:
2016-11-18 21:31:16
阅读次数:
182
C#的集合类继承关系UML图: ICollection - ICollection<T> ICollection:所有非泛型集合的大小、枚举器和同步方法 ICollection<T>:泛型集合的属性方法 ArrayList - List<T> ArrayList: 使用大小可按需动态增加的数组实现I ...