tip

  1. 开启线程的三种方式

    • extend Thread
    • Implements Runnable
    • implements Callable
  2. 线程和进程的区别

    • 进程系统分配最小单元 线程时cpu调度最小单元
    • 一个进程至少包含一个线程 或多个线程 线程共享进程资源
    • 每个线程都有独立的运行栈和程序计数器,线程切换开销小
  3. 谈谈volatile关键字的作用

    我所理解的保证了变量的可见性。每次读取volatile修饰的变量时都会重新从内存读取

    而不是缓存中。

  4. 谈谈volatile关键字的用法

    自己一般用于在多线程中用于某个状态的判断。因为volatile修饰的变量修改后能及时同步到

    其他的线程。这里要注意volatile只能保证可见性而不能保证原子性 如果依据volatile 变量的状态

    对变量进行写操作,很可能不会依照你想的执行。 因为这里有多个指令,有可能存在同时读到数据

    情况,那么第一次写入的值对第二次就不生效了。

  5. volatile的原理

    这个就要深入到CPU指令了。网上一般的说法是这样的。volatile修饰的变量 写指令后面紧

    接着会跟着一个lock指令。这个指令的功能就是通知其他CPU 值已经被更新需要重新获取

  6. synchronized 和volatile 关键字的区别

    synchronized是一种基于悲观锁同步机制 一旦有线程进入了同步代码块 其他线程就无法进入

    在synchronized的代码块里保证了原子性 可见性和有序性,而volatile是一种更轻量级的同步机制

    它只是保证了可见性。

  7. 同一个类里面两个synchronized方法,两个线程同时访问的问题

    如果是分别对两个对象的操作 互不影响。

    如果对同一个对象操作 首先进入方法的线程回得到this这个锁。只有当这个线程执行完方法释放锁的时候

    下一个线程才能得到锁执行方法。

  8. static synchronized 方法的多线程访问和作用

    是以当前类的Class对象做为锁 也就是该方法最多只能有一个线程在执行

  9. run()和start()方法区别

    run()方法是Runnable中一个普通的方法 直接调用会在当前线程执行。

    start()方法来启动线程,真正实现了多线程运行。 start方法的作用就是将线程由NEW 状态,变为RUNABLE状态。当线程创建成功时,线程处于NEW(新建)状态,如果你不调用 start( )方法,那么线程永远处于NEW状态。调用start( )后,才会变为RUNABLE状态,线程才 可以运行。

  10. synchronized与Lock的区别

类别 synchronized Lock
存在层次 Java关键字,jvm层面 是一个类
锁的释放 1. 以获取锁的线程执行完同步代码,释放锁 2线程执行发送异常,jvm会让线程释放锁 finally中必须释放锁,不然容易造成死锁
锁的获取
锁状态 可重入 不可中断非公平 可重入,可判断,可公平
性能 少量同步 大量同步
  1. ReentrantLock的内部实现

同步基于volatile 和CAS ,线程阻塞基于Unsafe.park。ReentrantLock基于AQS实现 AQS中维护一个同步队列

Syc继承自AQS,FairSy和NoFairSyn继承自Syc分别代表公平锁和非公平锁的实现机制。

lock方法被调用时如果前面已有线程在run 就会加入到队列tail。unlock被调用时会释放队列head中的线程。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容