编程开发之--java多线程学习总结(2)同步代码块

1、第一种解决办法:同步代码块,关键字synchronized

package com.lfy.ThreadsSynchronize;/*** 1、使用同步代码块* 语法:synchronized (同步锁) {//需要同步操作的代码         }同步锁:为了保证每个线程都能正常的执行原子操作,Java 线程引进了同步机制;同步锁也叫同步监听对象、同步监听器、互斥锁;Java程序运行使用的任何对象都可以作为同步监听对象,但是一般我们把当前并发访问的共同资源作为同步监听对象注意:同步锁一定要保证是确定的,不能相对于线程是变化的对象;任何时候,最多允许一个线程拿到同步锁,谁拿到锁谁进入代码块,而其他的线程只能在外面等着
*/
public class TicketSellSolution1 extends Thread{private static int num = 50;public TicketSellSolution1(String string) {super(string);}@Overridepublic void run() {for(int i = 0 ; i < 50 ;i ++){//这里我们使用当前对象的字节码对象作为同步锁synchronized (this.getClass()) {if(num > 0){try {Thread.sleep(10);//模拟卖票需要一定的时间} catch (InterruptedException e) {// 由于父类的 run()方法没有抛出任何异常,根据继承的原则,子类抛出的异常不能大于父类, 故我们这里也不能抛出异常
                        e.printStackTrace();}System.out.println(Thread.currentThread().getName()+"卖出一张票,剩余"+(--num)+"张");}}}}
}

 

转载于:https://www.cnblogs.com/ZeroMZ/p/9292411.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/254124.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

swift 随机数

1.一行代码生成随机数 arc4random() 如果要生成一个生成在一定范围内的随机整数: func randomIn(#min: Int, max: Int) -> Int { return Int(arc4random()) % (max - min 1) min} 该方法会生成[min, max]范围内的随机整数转载于:https://www.cnblogs.com/qiyiyifan/p/…

u-boot裁减

http://blog.csdn.net/menuconfig/article/details/2276078u-boot裁减的主要方法是通过删除不需要的命令来减小可执行代码体积。比如说&#xff0c;如果不需要网络相关的功能&#xff0c;则可以将网络相关的所有命令全部删除&#xff0c;可以节约可观的flash空间。一般u-boot的…

PhpStudy 升级 MySQL 版本到5.7

1&#xff1a;备份当前数据库数据、 最好是导成 SQL 文件2&#xff1a;备份 PhpStudy 下的 MySQL 文件夹、以防升级失败、还可以使用旧版本的数据库3&#xff1a;下载MySQL5.7、解压、然后放在 PhpStudy 下的 MySQL 文件夹下地址&#xff1a;https://dev.mysql.com/downloads/f…

使用直线标定板进行相机畸变校正,并且进行9点标定(halcon)

直线标定板图片&#xff1a; 机械吸头位置图片&#xff1a; 处理代码 read_image (Image, 直线标定板图片/Left201118140641772.bmp) get_image_size (Image, Width, Height) dev_close_window () dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle) dev_display…

github设置添加SSH

很多朋友在用github管理项目的时候&#xff0c;都是直接使用https url克隆到本地&#xff0c;当然也有有些人使用 SSH url 克隆到本地。然而&#xff0c;为什么绝大多数人会使用https url克隆呢&#xff1f; 这是因为&#xff0c;使用https url克隆对初学者来说会比较方便&…

linux设置套接字缓冲区的大小

系统提供的socket缓冲区大小为8K&#xff0c;你可以将之设置为64K&#xff0c;尤其在传输实时视频时。 socket发送数据时候先把数据发送到socket缓冲区中&#xff0c;之后接受函数再从缓冲区中取数据&#xff0c;如果发送端特别快的时候&#xff0c;缓冲区很快就被填满&#x…

【Java MyBatis Generator】使用generator自动生成Dao,Mapping和实体文件

具体请参照&#xff1a; http://blog.csdn.net/fengshizty/article/details/43086833 按照上面博客地址&#xff0c;下载Generator的依赖包&#xff1a; 如下是我的配置文件&#xff1a; 1 <?xml version"1.0" encoding"UTF-8"?>2 <!DOCTYPE ge…

h5移动端设备像素比dpr介绍

首先介绍一下概念 devicePixelRatio其实指的是window.devicePixelRatio window.devicePixelRatio是设备上物理像素和设备独立像素(device-independent pixels (dips))的比例。 公式表示就是&#xff1a;window.devicePixelRatio 物理像素 / dips 好了&#xff0c;到了这里有出…

halcon直线标定板对相机标定的效果评估(对比矫正前后、对比标定板矫正效果)

原图 程序源码 * gen_caltab (7, 7, 0.0025, 1/2.5, GB025标定板.descr, GB025标定板.ps) * Calibration 01: Code generated by Calibration 01 * CameraParameters : [0.048105,-44.0585,8.31518e-006,8.3e-006,641.37,588.269,1280,1024] * CameraPose : [-0.000849522,-0.…

【QQ输入法】QQ输入法-剪切板 释放内存

发现一个神奇的情况&#xff1a; 清除和关闭的操作&#xff1a; 1. 2.右键 3.点击 4.清空 5.最后需要关闭 QQ输入法的进程

Socket编程原理

什么是SocketSocket接口是TCP/IP网络的API&#xff0c;Socket接口定义了许多函数或例程&#xff0c;程序员可以用它们来开发TCP/IP网络上的应用程序。要学Internet上的TCP/IP网络编程&#xff0c;必须理解Socket接口。Socket接口设计者最先是将接口放在Unix操作系统里面的。如果…

【XLL 框架库函数】 TempActiveCell/TempActiveCell12

这两个函数创建 XLOPER/XLOPER12 &#xff0c;包含了当前激活工作表上的单元格引用。 LPXLOPER TempActiveCell(WORD row, BYTE col); LPXLOPER12 TempActiveCell12(RW row, COL co); 参数 row 引用行号&#xff0c;行号参数是从0开始的&#xff0c;因此 第一行就是0. col 引用…

POJ 3264 Balanced Lineup【线段树区间查询求最大值和最小值】

Balanced Lineup Time Limit: 5000MS Memory Limit: 65536KTotal Submissions: 53703 Accepted: 25237Case Time Limit: 2000MSDescription For the daily milking, Farmer Johns N cows (1 ≤ N ≤ 50,000) always line up in the same order. One day Farmer John decides to…

halcon测试一张图片是否过曝或过暗

read_image (Image, 1.bmp) count_obj (Image, Number) if(Number<0)return() endif min_max_gray (Image, Image, 0, Min, Max, Range) if(Min<1)*图像过暗 endif if(Max>254)*图像过曝 endif

真的要做一辈子的程序员吗?来自10年程序员的心声

经常听一些同学说&#xff1a;不知道下一份工作该去哪类公司做些什么&#xff0c;我的职场人际一团糟老板不重视我&#xff0c;我现在成长的非常慢所以又想跳槽了&#xff0c;我看不到公司的发展前景好迷茫&#xff0c;其实这一切的困惑都来源于没有做好职业规划或者你根本就没…

网络编程之 TCP / UDP 及其流程比较

TCP与UDP的区别 1、基于连接与无连接 2、对系统资源的要求&#xff08;TCP较多&#xff0c;UDP少&#xff09;3、UDP程序结构较简单 流模式与数据报模式 4、TCP保证数据正确性&#xff0c;UDP可能丢包 5、TCP保证数据顺序&#xff0c;UDP不保证具体编程时的区别 1、socket()的参…

Tomcat在Linux上的安装与配置

Tomcat在Linux上的安装与配置 1、 jdk下载地址&#xff1a; http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html tomcat下载地址:http://tomcat.apache.org/download-70.cg 2、jdk安装与配置.&#xff08;rpm包&#xff09; (1)jdk安装…

Spring在3.1版本后的bean获取方法的改变

xml配置不变&#xff0c;如下 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://…

使用halcon选择点拟合成直线求直线角度

原图 源码 read_image (Image, 0.bmp) dev_clear_window () dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle) dev_display (Image)binary_threshold (Image, Region, max_separability, dark, UsedThreshold) connection (Region, ConnectedRegions) select_s…

Linux网络/firewalld和netfilter/netfilter/iptables语法

为什么80%的码农都做不了架构师&#xff1f;>>> linux网络相关 查看网卡网络信息 ifconfig 命令查看网卡网络信息&#xff0c;比如ip、网关、子网掩码等&#xff0c;但是安装centos7的版本或者某些未知原因&#xff0c;此命令提示找不到&#xff0c;我们可以使用Yu…