并发编程
文章平均质量分 62
流浪的小椅
这个作者很懒,什么都没留下…
展开
-
关于并发
对并发编程网的学习跟笔记总结 http://ifeve.com/java-concurrency-thread-directory/1、多线程的优点:资源利用率更好程序设计更简单程序响应更快总的来说,多线程可以充分利用CPU资源,帮助我们编写出高性能的程序2、代价设计更复杂上下文切换的开销(当CPU从执行一个线程切换到执行另外一个线程的时候,它需要先存储当前线程的本地的数据,程序指针等,然后载入另...原创 2018-04-10 10:54:30 · 102 阅读 · 0 评论 -
创建并运行java线程和关于竞态条件与临界区
编写线程运行时执行的代码有两种方式:一种是创建Thread子类的一个实例并重写run方法,第二种是创建类的时候实现Runnable接口倾向于实现Runnable接口这种方法。因为线程池可以有效的管理实现了Runnable接口的线程,如果线程池满了,新的线程就会排队等候执行,直到线程池空闲出来为止。常见错误:调用run()方法而非start()方法竞态条件与临界区在同一程序中运行多个线程本身不会导致...转载 2018-04-10 11:23:19 · 146 阅读 · 0 评论 -
线程安全与共享资源
允许被多个线程同时执行的代码称作线程安全的代码。线程安全的代码不包含竞态条件。当多个线程同时更新共享资源时会引发竞态条件。局部变量局部变量存储在线程自己的栈中。也就是说,局部变量永远也不会被多个线程共享。所以,基础类型的局部变量是线程安全的。下面是基础类型的局部变量的一个例子:view sourceprint?1public void someMethod(){2 3 long thread...转载 2018-04-10 14:04:37 · 105 阅读 · 0 评论 -
Java内存模型
Java内存模型内部原理Java内存模型把Java虚拟机内部划分为线程栈和堆。这张图演示了Java内存模型的逻辑视图。每一个运行在Java虚拟机里的线程都拥有自己的线程栈。这个线程栈包含了这个线程调用的方法当前执行点相关的信息。一个线程仅能访问自己的线程栈。一个线程创建的本地变量对其它线程不可见,仅自己可见。即使两个线程执行同样的代码,这两个线程任然在在自己的线程栈中的代码来创建本地变量。因此,每...转载 2018-04-11 17:05:10 · 140 阅读 · 0 评论 -
测试2000线程并发下同时查询1000万条数据库表及索引优化
继上篇文章《绝对干货,教你4分钟插入1000万条数据到mysql数据库表,快快进来》发布后在博客园首页展示得到了挺多的阅读量,我这篇文章就是对上篇文章的千万级数据库表在高并发访问下如何进行测试访问这篇文章的知识点如下:1.如何自写几十行代码就能模拟测试高并发下访问千万级数据库表2.比较高并发下(200次/秒,2000次/秒,10000次/秒)数据库的性能3.比较千万级数据库在查询时加索引与不加索引...转载 2018-06-26 18:55:02 · 3409 阅读 · 0 评论 -
高并发,线程笔记
互斥锁synchronized,锁定对象,this对象,不是方法区块synchronized static 等同于synchronized当前对象类.class,static可以直接访问,所以不存在this对象第一种lambda表达式,第二种要jdk8,后面是最古老的写法,new出来一个线程synchronized获得的锁是可重入的,就是说当前线程已经获得一个synchronized锁,在里面又去...原创 2018-06-30 20:47:42 · 218 阅读 · 0 评论