方法变量与同步|学习笔记

简介: 快速学习方法变量与同步

开发者学堂课程【Java 面试疑难点串讲 1 :面试技巧及语言基础方法变量与同步】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/24/detail/509


方法变量与同步


内容介绍:

1. 方法中的变量是否是线程安全?

2. synchronized 的同步处理操作

方法中的变量是否是线程安全?


方法之中的变量都是属于局部变量,如果去考虑线程安全性问题,那一定是在多个线程访问同一个资源的时候进行的,既然是同一个资源,就必须考虑 Runnable、 Callable 接口来实现多线程处理关系。

 

synchronized 的同步处理操作

方法的定义上如果使用了 synchronized,那么这个方法就表示同步的处理操作,指的是当前的方法只允许有一个线程进入

package vshop;

import java.util.concurrent.TimeUnit;

class Ticket implements Runnable {

privateint count=100;//对象之中需要有堆内存保存属性,而所有的线程操作的是属性

@Override

public void run(){

while(true){

this.sale();

}

}

public synchronized void sale(){

String str =" [BEFORE]"+ Thread. currentThread ().getName ()+"运行 。";

if(this.count>0){

System.out.println(str);

try {

TimeUnit.SECONDS. sleep (2);

} catch (InterruptedException e) {

e.printstackTrace();

System.out.println(Thread.currentThread()+“卖票,ticket="+this.count str="【AFTER】"+Thread.currentThread().getName()+“运行。”;

try{

TimeUnit. SECONDS. sleep(1);

} catch (InterruptedException e) {

e.printStackTrace();

}

System.out.println(str);

}

}

}

public class Demo {

public static void main(String[] args) throws Exception {

Ticket t = new Ticket();

for (int x = 0; x < 30; x ++){

new Thread(t).start();

}

}

}

注意:线程同步处理之中不会去考虑方法中的参数,只会考虑类中的属性

相关文章
|
4月前
|
存储 安全 Java
在Python中,引用和赋值机制是理解变量和数据对象之间关系的关键
【6月更文挑战第16天】Python变量是对象引用,不存储数据,指向内存中的对象。赋值`=`创建引用,不复制对象。`b = a`时,a和b指向同一对象。引用计数管理对象生命周期,垃圾回收在引用数为0时回收对象。理解这些机制对优化内存使用关键。
52 7
|
4月前
|
jenkins Java 持续交付
一篇文章讲明白JenkinsPipelinescript指令创建和变量定义
一篇文章讲明白JenkinsPipelinescript指令创建和变量定义
185 0
|
5月前
|
Python
Python的全局变量作用于整个程序,生命周期与程序相同,而局部变量仅限函数内部使用,随函数执行结束而销毁。
【5月更文挑战第11天】Python的全局变量作用于整个程序,生命周期与程序相同,而局部变量仅限函数内部使用,随函数执行结束而销毁。在函数内部修改全局变量需用`global`关键字声明,否则会创建新局部变量。
134 2
|
12月前
|
Python
python之数据的赋值方式,变量内存地址的获取方式,获取变量名的方法,不同方法之间的区别
python之数据的赋值方式,变量内存地址的获取方式,获取变量名的方法,不同方法之间的区别
|
5月前
|
存储 安全 编译器
C/C++陷阱——临时变量的产生和特性
C/C++陷阱——临时变量的产生和特性
|
缓存 运维 监控
【运维知识进阶篇】Ansible变量详解(变量定义+变量优先级+变量注册+层级定义变量+facts缓存变量)
【运维知识进阶篇】Ansible变量详解(变量定义+变量优先级+变量注册+层级定义变量+facts缓存变量)
303 0
|
前端开发
前端学习案例3-this指向问题-隐式调用规则
前端学习案例3-this指向问题-隐式调用规则
70 0
前端学习案例3-this指向问题-隐式调用规则
|
前端开发
前端学习案例4-this指向问题-隐式调用规则2
前端学习案例4-this指向问题-隐式调用规则2
71 0
前端学习案例4-this指向问题-隐式调用规则2
|
Scala 开发者
模式中的变量 | 学习笔记
快速学习模式中的变量
模式中的变量 | 学习笔记
|
编译器 Scala 开发者
隐式函数使用注意事项|学习笔记
快速学习隐式函数使用注意事项。