Coin163

  • 并发之痛 Thread,Goroutine,Actor

    本文基于我在2月27日Gopher北京聚会演讲整理而成,进行了一些补充以及调整。投稿给《高可用架构》公众号首发。 聊这个话题之前,先梳理下两个概念,几乎所有讲并发的文章都要先讲这两个概念: 并发(concurrency) 并发的关注点在于任务切分。举例来说

    日期:2016年07月18日
  • java并发编程学习之synchronized学习总结

    我是通过new了一个Thread2对象进行调用方法启动的三个线程,这个三个线程是用的同一个对象,所以用synchronized加在了方法上,已经实现了对这个方法并发访问控制,下面再来测试一下多个对象访问 代码2: package

    日期:2015年11月25日
  • java并发编程学习之interrupt相关方法学习(一)

    public class Thread5 { public static void main(String[] args) { Thread5_1 t5 = new Thread5_1(); t5.start(); t5.interrupt(); Thread.currentThread().interrupt(); System.out.println(" 1 "+Thread.interrupted()); System.out.println(" 2 "+Thread.interrupted());

    日期:2015年12月10日
  • obj-c利用dispatch库并发示例

    dispatch机制,我们看看并发操作怎么写: #import <Foundation/Foundation.h> //#include "/usr/local/include/dispatch/dispatch.h" typedef unsigned long long

    日期:2015年06月27日
  • 体验 Java 并发 api,用不同方式实现信号量锁(Semaphore)(6)

    /* * ---------------------------------------------------- * 使用LockSupport来实现 * 使用park,unpark实现基本线程控制方法, 更底层 * 没有必要的话,不要用这样的方式来控制线程,这里仅是做个试验 * ---------------------------------------------------- */ class LockSupportSema implements IMySemaphore { private AtomicInteger _iSignal; private final

    日期:2016年02月03日
  • iOS -NSOperation——高级的并发处理方法

    NSOperation 是Objective-C中一种高级的并发处理方法,现在对GCD的封装;功能比 GCD更强大! 两个概念      操作;      操作队列;      NSOperation多线程实现步骤       实现多线程的步骤就是,把操作

    日期:2015年12月06日
  • Android IPC进程通信 Messager方式

    Handler形式处理,因此,它是线程安全的,这也表示它不支持并发处理;而AIDL方式是非线程安全的,支持并发处理,因此,我们使用AIDL方式时需要保证代码的线程安全。 大部分情况下,我们应用中不需要并发处理。因此,我们通常只需要使用Messager方式。 思想:在进程

    日期:2016年01月07日
  • Web系统大规模并发——电商秒杀与抢购

    转载地址:【问底】徐汉彬:Web系统大规模并发——电商秒杀与抢购 电商的秒杀和抢购,对我们来说,都不是一个陌生的东西。然而,从技术的角度来说,这对于Web系统是一个巨大的考验。当一个Web系统,在一秒钟内收到数以万计甚至更多请求时,系统的优化和稳定至关重要

    日期:2016年06月03日
  • servlet--多线程问题及java内存模型

    时并没有注意到多线程安全性的问题,这往往造成编写的程序在少量用户访问时没有任何问题,而在并发用户上升到一定值时,就会经常出现一些莫明其妙的问题。    Servlet的多线程机制      Servlet体系结构是建立在Java多线程机制之上的,它的生命周期是由Web容器

    日期:2015年07月16日
  • Java并发编程-Fork/Join框架同步与异常

    前面学习了Executor框架,它将任务的创建和执行进行了分离,通过这个框架,只需要创建Runnable对象,把Runnable对象交给Executor执行器,Executor执行器在负者执行这些任务的线程创建,管理以及线程的结果。JDK1.7 Concurrent包提供了一个新的Fork/join框架。是ExecutorService接口的另一种实现。 Fork/Join框架介绍 Fork/join框架用来解决能够通过分治技术将问题划分为小任务的问题,能够充分的利用计算机的资源,类似于MapReduce。如果问题的大小超过了一个设定值,就把任务划分成小任务,通过框架执行这些小问题,如果问题的

    日期:2016年06月11日
  • JDK容器与并发—Map—HashMap

    概述       基于数组+单链表优点构造的Map,非线程安全。 1)实现原理等效于Hashtable,Hashtable虽然为线程安全的,但由于其读写方法均为synchronized,并发效率低; 2)在哈希函数哈希合理情况下,基础操作get、put

    日期:2016年04月20日
  • 阿里云服务器使用OneinStack的lnmp一键安装包后查看nginx的并发数

    的或正在进行 LISTEN  //服务器在等待进入呼叫 SYN_RECV  //一个连接请求已经到达,等待确认 SYN_SENT  //应用已经开始,打开一个连接 ESTABLISHED  //正常数据传输状态/当前并发连接数 FIN_WAIT1  //应用说它已经完成

    日期:2016年01月07日
  • Java并发编程-同步辅助类之Phaser

    在前面已经学习过 Java并发编程-同步辅助类之CountDownLatch Java并发编程-同步辅助类之CyclicBarrier 这篇文章介绍另一个辅助类Phaser,它是Jdk 1.7才添加的新的功能,它可以实现和CountDownLatch

    日期:2016年06月07日
  • 多线程之阻塞队列ArrayBlockingQueue,BlockingQueue

    ArrayBlockingQueue是个有数组支持的有界的阻塞队列。该队列按照先进先出FIFO的原理对元素排序,插入新元素市场队列的尾部,获取新元素是操作队列的开始处。一旦见了建立了缓存区,就不能再增加其容量,试图从已满的队列中方式元素会导致操作阻塞;试图从空的队列中提取元素将导致阻塞。 提拱了四种方法,只有put(),take()才会发生阻塞。 下面是阻塞队列的例子。 package andy.thread.test; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.BlockingQu

    日期:2014年11月09日
  • 【Java并发编程】之二十三:并发新特性—信号量Semaphore(含代码)

    、notify机制。     Java并发包中的信号量Semaphore实际上是一个功能完毕的计数信号量,从概念上讲,它维护了一个许可集合,对控制一定资源的消费与回收有着很重要的意义。Semaphore可以控制某个资源被同时访问的任务数,它通过acquire()获取一个

    日期:2015年11月17日
  • TCP并发服务器模型(三)

    本篇博客讲述的是单客户端单线程模型,该模型同样由主进程统一accept,只是将fork改为了pthread_create。 与进程相比,线程有很多优点(速度快,占用资源少,数据可以共享), 该模型结构如图所示: 与上一篇博客讲述的模型非常类似,源代码同上一篇相比只有少量更改而已,亦不讲解。 服务器端代码如下: /* author:arvik purpose:test the server simultaneity email:1216601195@qq.com csdn: http://blog.csdn.net/u012819339 */ #include <sys/types.h> #i

    日期:2016年03月15日
  • java并发编程学习之interrupt相关方法学习(二)

    在上篇博客中我多次说到,当线程调用interrupt方法的是,并不是立刻停止当前线程,而是给该线程赋予了一个停止的标志。那么如何证明这句话的真伪呢。看代码。 package org.netease.concurrent; public class Thread5 { public static void main(String[] args) throws InterruptedException { Thread5_1 t5 = new Thread5_1(); t5.start(); Thread.sleep(10); t5.

    日期:2015年12月11日
  • 理解 iOS 开发中 GCD 相关的同步(synchronization)\ 异步(asynchronization),串行(serial)\ 并行(concurrency)概念

    serialQueue 的操作必定在输出 2 后进行,因此 2 必定在 3 前输出。 串行和并行是针对一个队列中的多个任务执行顺序而言的。串行队列是指队列中的任务是一个接一个地执行的,队首的任务执行完毕后才能执行其后面的任务,直至执行队尾的任务;并行队列是指队列中的任务可以并发

    日期:2015年12月14日
  • android sqlite数据库并发问题的详细描述和解决方案

    is locked和java.lang.IllegalStateException: attempt to re-open an already-closed object.这两个是我们最常见的数据库并发异常。问题要一个一个的解决,我先说说数据库锁定出现的原因,能够明白

    日期:2015年01月22日
  • java程序员面试——Java并发编程知识点总结

    能被其它线程可见提供了保证,它们之间是先行发生关系。这个关系定义了一些规则让程序员在并发编程时思路更清晰。比如,先行发生关系确保了: 线程内的代码能够按先后顺序执行,这被称为程序次序规则。 对于同一个锁,一个解锁操作一定要发生在时间上后发生的另一个锁定操作之前

    日期:2016年06月12日