synchronized相关用法简述

synchronized 锁,他是一个java 的关键字,能够保证同一线程只有一个线程访问或使用此修饰的代码块

用法 synchronized方法,synchronized块

synchronized方法:public synchronized void accessVal(int newVal

synchronized块:

synchronized(syncObject) {  
  //允许访问控制的代码  
}

总结:当一个syc锁被第一个拿到时,第一个拿到的享有优先使用权,其他使用这个syc锁的必须等待,即等待第一个拿到的使用完成。这是针对于同一个对象而言,如果是不同的对象,不同的对象会产生不同的锁实例,所以这个锁

只针对同一个对象。

同步类,一个类如果有加锁,但是如果类中并没有加锁的方法和加锁的方法块,外部如果有不同线程调用,那么其实对于这个加锁有没有并没有什么影响,因为都不是加锁的方法,他们仍可以正常执行。

//博客推荐,这个是博客园我感觉写的比较好的锁的介绍

https://www.cnblogs.com/GnagWang/archive/2011/02/27/1966606.html

原文地址:https://www.cnblogs.com/fengfenghuifei/p/8328437.html

时间: 2024-10-13 16:28:06

synchronized相关用法简述的相关文章

Js相关用法个人总结

Js相关用法个人总结  js中将数组元素添加到对象中var obj = {}; var pushArr = [11,22,33,44,55,66]; for(var i=0;i<pushArr.length;i++) { obj[i] = pushArr[i]; } obj.length = pushArr.length; console.log(obj); //{0:11,1:22,2:33,3:44,4:55,5:66,length:6} 在js中为对象添加属性和方法 var obj = {

STL中的Vector相关用法

STL中的Vector相关用法 标准库vector类型使用需要的头文件:#include <vector>. vector 是一个类模板,不是一种数据类型,vector<int>是一种数据类型. Vector的存储空间是连续的,list不是连续存储的. 1. 定义和初始化 vector< typeName > v1; //默认v1为空,故下面的赋值是错误的v1[0]=5;//v2是v1的一个副本,若v1.size()>v2.size()则赋值后v2.size()被

Java中Synchronized的用法

版权声明:本文为博主原创文章,未经博主允许不得用于任何商业用途,转载请注明出处. 目录(?)[+] 原文:http://blog.csdn.net/luoweifu/article/details/46613015 作者:luoweifu 转载请标名出处 <编程思想之多线程与多进程(1)--以操作系统的角度述说线程与进程>一文详细讲述了线程.进程的关系及在操作系统中的表现,这是多线程学习必须了解的基础.本文将接着讲一下Java线程同步中的一个重要的概念synchronized. synchro

MyEclipse相关用法介绍

MyEclipse相关用法介绍 ================================================================================ 编辑: Ctrl+Shift+L      显示所有快捷键 Ctrl+K        参照选中的词(Word)快速定位到下一个 Ctrl+Shift+K      参照选中的词(Word)快速定位到上一个 Ctrl+O         快速显示OutLine Ctrl+T        快速显示当前类的

synchronized的用法

synchronized是Java中的关键字,是一种同步锁.它修饰的对象有以下几种: 1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象: 2. 修饰一个方法,被修饰的方法称为同步方法,其作用的范围是整个方法,作用的对象是调用这个方法的对象: 3. 修改一个静态的方法,其作用的范围是整个静态方法,作用的对象是这个类的所有对象: 4. 修改一个类,其作用的范围是synchronized后面括号括起来的部分,作用主的对象是这个类

#ifdef预编译相关用法

#ifdef预编译相关用法主要有:(1)#ifdef XXX executing the corresponding xxx code #endif(2)#ifdef XXX executing the corresponding xxx code #else executing the other code(3)#ifdef XXX executing the corresponding xxx code #elifdef YYY executing the corresponding yyy

Java中Date各种相关用法

Java中Date各种相关用法(一) 1.计算某一月份的最大天数 Java代码 Calendar time=Calendar.getInstance(); time.clear(); time.set(Calendar.YEAR,year); time.set(Calendar.MONTH,i-1);//注意,Calendar对象默认一月为0 int day=time.getActualMaximum(Calendar.DAY_OF_MONTH);//本月份的天数 注:在使用set方法之前,必须

Python中的Scrapy 命令相关用法

Python语言中Scrapy 命令是非常重要的一个命令,今天和大家分享的就是Scrapy 命令的相关用法.Scrapy 命令分为两种: 全局命令和项目命令,具体的用法,一起来看看吧 . 全局命令:在哪里都能使用. 项目命令:必须在爬虫项目里面才能使用. 全局命令 C:\\Users\\AOBO>scrapy -h Scrapy 1.2.1 - no active project Usage: scrapy[options] [args] Available commands: bench Ru

Nodejs学习之net模块相关用法详解

net模块是同样是nodejs的核心模块.在http模块概览里提到,http.Server继承了net.Server,此外,http客户端与http服务端的通信均依赖于socket(net.Socket).也就是说,做node服务端编程,net基本是绕不开的一个模块.本文就和大家详细扒一扒Nodejs的net相关用法,希望对大家学习Nodejs 有所帮助吧.  从组成来看,net模块主要包含两部分,了解socket编程的同学应该比较熟悉了:  · net.Server:TCP server,内部