多线程
好命靠努力
这个作者很懒,什么都没留下…
展开
-
简谈Java的join()方法
join()是Thread类的一个方法。根据jdk文档的定义:public final void join()throws InterruptedException: Waits for this thread to die.join()方法的作用,是等待这个线程结束;但显然,这样的定义并不清晰。个人认为"Java 7 Concurrency Cookbook"的定义较为清晰: ...转载 2018-10-08 09:19:25 · 140 阅读 · 0 评论 -
Java中的多线程你只要看这一篇就够了
引如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的“生产者,消费者模型”。很多人都对其中...转载 2018-10-30 09:37:17 · 79 阅读 · 0 评论 -
【java】判断两个引用类型的变量是否指向同一地址
问题:有两个对象obj1和obj2,都是MyObject类的实例。如何比较这两个对象是否指向相同的内存地址?分情况讨论: 1、如果 MyObject类的equals方法和hashcode方法被重写: 如果obj1 == obj2 为真,则两者指向相同的内存地址。2、如果 MyObject类的equals方法和hashcode方法没有被重写: 1. 如果obj1 == obj2 为...转载 2018-10-30 09:33:15 · 1178 阅读 · 0 评论 -
java细粒度锁
Java中的几种锁:synchronized,ReentrantLock,ReentrantReadWriteLock已基本可以满足编程需求,但其粒度都太大,同一时刻只有一个线程能进入同步块,这对于某些高并发的场景并不适用。 下面来提供几个更细的粒度锁:1. 分段锁借鉴concurrentHashMap的分段思想,先生成一定数量的锁,具体使用的时候再根据key来返回对应的lo...转载 2018-09-29 11:04:58 · 746 阅读 · 0 评论 -
Java中的锁概念
掌握Java中锁是Java多线程编程中绕不开的知识,只有知道理解Java各种锁才能在编码过程中灵活运用,写出更高效的多线程程序。而理解掌握锁的第一步,可从宏观上对比理解一下各种锁概念。公平锁/非公平锁 可重入锁 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁上面是很多锁的名词,这些分类并不是全是指锁的状态,有的指锁的特性,有的...转载 2018-09-29 11:03:11 · 308 阅读 · 0 评论 -
Java并发编程:Lock
Java并发编程:Lock 在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java 5之后,在java.util.concurrent.locks包下提供了另外一种方式来实现同步访问,那就是Lock。 也许有朋友会问,既然都可以通过synchronized来实现同步访问了,那么为什么还需要提供Lock?这个问题将在下面...转载 2018-10-08 09:26:30 · 144 阅读 · 0 评论 -
Java互斥锁的一个简单Demo
互斥锁,常常用于多个线程访问独占式资源,比如多个线程同时写一个文件,虽然互斥访问方式不够高效,但是对于一些应用场景却很有意义 标签: <无>代码片段(1)[全屏查看所有代码]1. [代码][Java]代码 ? 1 2 3 4 5 6 7 8 9 10 11...转载 2018-10-08 09:25:26 · 6359 阅读 · 0 评论 -
mysql锁机制之行级锁
锁是在执行多线程时用于强行限定资源访问的同步机制,数据库锁根据锁的粒度可分为行级锁,表级锁和页级锁行级锁行级锁是mysql中粒度最细的一种锁机制,表示只对当前所操作的行进行加锁,行级锁发生冲突的概率很低,其粒度最小,但是加锁的代价最大。行级锁分为共享锁和排他锁。特点:开销大,加锁慢,会出现死锁;锁定粒度最小,发生锁冲突的概率最大,并发性也高;实现原理:InnoDB行锁...转载 2018-10-08 09:21:17 · 164 阅读 · 0 评论 -
java 线程方法join的简单总结
虽然关于讨论线程join方法的博客已经很多了,不过个人感觉挺多都讨论得不够全面,所以我觉得有必要对其进行一个全面的总结。 一、作用 Thread类中的join方法的主要作用就是同步,它可以使得线程之间的并行执行变为串行执行。具体看代码: 按 Ctrl+C 复制代码 按 Ctrl+C 复制代码上面程序结果是先打印完小明线程,在打印小东线程; 上面注释也大...转载 2018-10-08 09:20:06 · 77 阅读 · 0 评论 -
多线程 思路图
原创 2018-11-01 15:32:46 · 443 阅读 · 0 评论