哒哒哒

多线程:

1. 多线程的3中运行方式:

2. synchronized是一个重量级锁
   
 3. sychronized的锁类型 和  位置
    java 为每个类实例和类都设置了一个锁并且遵循一定的锁机制。
    在分析sychronized 逻辑是,关键点就是分析出提供锁的对象是哪个?实例,还是类
  
    Java中每一个对象都可以作为锁,这是synchronized实现同步的基础: 
  1. 普通同步方法,锁是当前实例对象 
  2. 静态同步方法,锁是当前类的class对象 
  3. 同步方法块,锁是括号里面的对象(某个实例对象或者class对象)
  
 4.synchronized 实现原理(javap filename.class)
   同步代码块:monitorenter指令插入到同步代码块的开始位置,monitorexit指令插入到同步代码块的结束位置。
        每个对象有一个监视器锁(monitor)。当monitor被占用时就会处于锁定状态,线程执行monitorenter指令
          时尝试获取monitor的所有权,过程如下:
          1.如果monitor的进入数为0,则该线程进入monitor,然后将进入数设置为1,该线程即为monitor的所有者。
          2.如果线程已经占有该monitor,只是重新进入,则进入monitor的进入数加1.
          3.如果其他线程已经占用了monitor,则该线程进入阻塞状态,直到monitor的进入数为0,再重新尝试获取monitor的所有权。
 
        执行monitorexit的线程必须是objectref所对应的monitor的所有者。
        monitor的进入数减1,如果减1后进入数为0。

同步方法:  synchronized方法则会被翻译成普通的方法调用和返回指令如:invokevirtual、areturn指令,在VM字节码层面并没有任何
        特别的指令来实现被synchronized修饰的方法,而是在Class文件的方法表中将该方法的access_flags字段中的synchronized
        标志位置1。如果设置了,执行线程将先获取monitor。并没有通过指令monitorenter和monitorexit来完成

时间: 2024-10-13 13:51:45

哒哒哒的相关文章

哒哒哒嗒嗒嗒

那些最后留下来的歌 Every Breath you take ,The police punching in a dream ,The naked and famous swimming story ,Sea Oleena Greenland ,Emancipator Love the way you lie ,Eminem beautiful ,Akon right now(na na na) ,Akon Angel ,Akon no tears ,James Blunt tears and

Linux的抉择?你的抉择?

Linux哲学之美 linux就像是一个哲学的最佳实践.如果非要对它评价,我真的不知道该怎么赞叹,我只能自豪的说着:“linux的美丽简直让人沉醉.” 我只能说是我处在linux学习的修炼之路上的一个小菜鸟,linux的东西真的太丰富了,让你感觉只要掌握了其中的一个部分,就可以在求职之路上大放光彩,因此我常常感叹自己的弱小和无知,我离着linux的中心是多么的遥远,我只看到众多高耸的山峰. Bash shell,linux kernel,linux C编程,嵌入式开发,linux 设备(驱动)编

武汉中大农研农民根本

武汉中大农研生物技术有限公司是以现代生物工程.特种养殖.药用动植物资源开发为核心,是集科研.繁育.培训.推广.技术服务.生产.销售.进出口贸易为一体的高新技术企业.拥有大型全封闭式的生物基地,建有生态农业养殖区.综合养殖区.大棚温室养殖区及特种养殖区,分设特种动物研究所.技术培训中心.种苗培育中心.种源室.孵化室.基因转化室及成品动植物销售中心等.基础优良,体系完整,技术力量雄厚,销售网络健全. <腹黑总裁太霸道>第41章:狼狈的一刻免费阅读 - <小说阅读网> "好险,

CNUOJ 0486 800401反质数

难度级别:A: 运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 将正整数 x 的约数个数表示为 g(x).例如,g(1)=1,g(4)=3, g(6)=4. 如果对于任意正整数y,当 0 < y < x 时,x 都满足 g(x) > g(y), 则称 x 为反质数.整数 1,2,4,6 等都是反质数. 现在任意给定两个正整数 M, N,其中,M < N <= 20000000,按从小到大输出其中(包括 M 和 N)的所有

安卓开发游戏用Cocos2d什么版本?

这两天上课,讲了两天半的游戏开发,做一个植物大战僵尸的小demo,最终实现到一步步点击进入游戏后,豌豆射手可以打死僵尸,僵尸可以啃坚果. 使用的是Cocos2d-android,老师在讲课的时候主要就是说这样写可以实现这样的效果,哒哒哒做出来.我听着十分焦灼..难受,因为这些类的今生前世,什么关系,都是干什么的啊不是很清楚.于是下来自己查相关的资料,在网上搜知识点,发现引用了一本书<cocos2d-x权威指南>,讲的比较详细,于是下来看,直接看第三章核心类,看到代码发现是C++的,感觉不对头.

小白解决CENTOS7错误:Cannot find a valid baseurl for repo: base/7/x86_6

刚入手的MacBook想着学点东西,本汪还是决定玩玩CentOS服务器,安装好了VirtualBox + CentOS. 打开一看,懵逼了!命令行! 行吧,先装个图形界面: $sudo yum groupinstall "GNOME Desktop" "Graphical Administration Tools" 哒哒哒- 命令一敲,来事儿了 Cannot find a valid baseurl for repo: base/7/x86_6 连不上网啊,大爷!找

绘制Wifi 矢量图标

从10.2开始看UI设计的一些感念,到今天上午终于把那本书看完啦,小小的汗颜,只是粗略的过一遍,走马观花,很多东西理解的还不深刻,结合实际项目再学习吧.书的最后几章讲了一个好的设计是多么重要,也给出了一些外国的网站,不得不说,歪果仁写的东西真心不错,不过国内的一些网站也挺好,之前看css进阶的时候,看到书里推荐的一个网站, http://www.climbthemountains.com/  当然是讲代码的,于是就把它源码搞来学习,也挺有收获的.哈哈,不多说了.这年头不会点ps,怎么玩得过叶良辰

Codeforces Gym 100571A A. Cursed Query 离线

A. Cursed QueryTime Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100571/problem/A Description De Prezer loves movies and series. He has watched the Troy for like 100 times and also he is a big fan of Supernatural series.So, he di

排序计数类题目小结

考虑到每次出哒哒哒操作,最少多少次操作使数组有序这一类题我都错的很惨,小小地总结一下 1.交换相邻位置的点->求逆序对(火柴排队,10.30noip模拟赛T1),有效的操作一定使得逆序对减少一个 2.交换任意位置->转化为置换(10.30noip模拟赛T1),置换内交换只需要置换中点个数次 3.每次可以把一个数扔到最前面->(HDU5500,noip模拟赛11.12T1)官方题解: 把这题的模型简化一下,有一个1→n的排列形成的数列,我们要用最少的操作次数把这个数列排序,每次操作都是把一