下面我们再给出一个线程不安全的例子。

例:1.8.2

class BookMark_to_win {
    int bookNum=10;
    void onlySellOne() {
        if (bookNum > 0) {
            System.out.println(Thread.currentThread().getName()
                    + " before" + bookNum);
            bookNum--;
            try {
                Thread.sleep(1000);
            } catch (Exception e) {
            }
            System.out.println(Thread.currentThread().getName()
                    + " after " + bookNum);
        }
    }
}
public class Test {
    public static void main(String[] args) {
        BookMark_to_win bookM = new BookMark_to_win();
        while (bookM.bookNum>0) {
            bookM.onlySellOne();
        }
    }
}

更多请见:https://blog.csdn.net/qq_44639795/article/details/103096118

java中什么是线程不安全给出一个例子相关推荐

  1. java中的后台线程、前台线程、守护线程区别

    java中的后台线程.前台线程.守护线程区别 区别和联系 区别 联系 区别和联系 区别 后台线程和守护线程是一样的. 后台线程不会阻止进程的终止,而前台线程会, 可以在任何时候将前台线程修改为后台线程 ...

  2. Java中如何实现线程的超时中断

    转载自  Java中如何实现线程的超时中断 背景 之前在实现熔断降级组件的时候,需要实现接口请求的超时中断.意思是,业务在使用熔断降级功能时,在平台上设置了一个超时时间,如果请求进入熔断器开始计时,接 ...

  3. Java中枚举的线程安全性及序列化问题

    转载自  Java中枚举的线程安全性及序列化问题 Java SE5提供了一种新的类型-Java的枚举类型,关键字enum可以将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常规的程序 ...

  4. 什么是Java中的守护程序线程?

    谁能告诉我Java中有哪些守护程序线程? #1楼 守护程序线程就像其他与守护程序线程在同一进程中运行的线程或对象的服务提供者一样. 守护程序线程用于后台支持任务,仅在执行正常线程时才需要. 如果正常线 ...

  5. Java中的守护程序线程

    Daemon thread in java can be useful to run some tasks in background. When we create a thread in java ...

  6. 详解线程池的作用及Java中如何使用线程池

    服务端应用程序(如数据库和 Web 服务器)需要处理来自客户端的高并发.耗时较短的请求任务,所以频繁的创建处理这些请求的所需要的线程就是一个非常消耗资源的操作.常规的方法是针对一个新的请求创建一个新线 ...

  7. Java 中Timer和TimerTask 定时器和定时任务使用的例子

    转载自  Java 中Timer和TimerTask 定时器和定时任务使用的例子 这两个类使用起来非常方便,可以完成我们对定时器的绝大多数需求 Timer类是用来执行任务的类,它接受一个TimerTa ...

  8. html 点击新建窗口,【单选题】在HTML中,若实现单击超链接时,弹出一个新的网页窗口,下列的()选项符合要求。 A. 节目 B. 节目 C. 节目 D. 节目...

    [单选题]在HTML中,若实现单击超链接时,弹出一个新的网页窗口,下列的()选项符合要求. A. 节目 B. 节目 C. 节目 D. 节目 更多相关问题 扩展不确定度为()Ω,取包含因子k=2.A.0 ...

  9. java中我爱你_Java线程学习(转)

    编写具有多线程能力的程序经常会用到的方法有: run(),start(),wait(),notify(),notifyAll(),sleep(),yield(),join() 还有一个重要的关键字:s ...

  10. java中等待所有线程都执行结束

    使用CountDownLatch,这其实是最优雅的写法了,每个线程完成后都去将计数器减一,最后完成时再来唤醒 @Test public void testThreadSync3() { final V ...

最新文章

  1. 【Java 并发编程】线程锁机制 ( 线程安全 | 锁机制 | 类锁 | 对象锁 | 轻量级锁 | 重量级锁 )
  2. mybatis 基础理解
  3. 05_HttpClient_模拟登陆
  4. oracle 中 start tran,The value (30) of MAXTRANS parameter ignored
  5. Redmi K20系列上市首月销量破100万台
  6. Linux 命令(106)—— chkconfig 命令
  7. 戴尔笔记本不能识别U盘和鼠标解决方法
  8. Linux下进程信息的深入分析
  9. Python如何上传文件?
  10. windows 10 Office 2016 安装
  11. 数据结构与算法之并查集
  12. 台式机主板上保护cpu的盖子安装和拆卸
  13. 美国密歇根州立大学计算机专业,密歇根州立大学计算机科学与工程系
  14. Leetcode——904. 水果成篮
  15. 大数据资源争夺战此起彼伏 对用户而言是福是祸?
  16. Windows里下载并安装phpstudy(图文详解)
  17. GPON Type B保护
  18. c#把word文档转换为html页面
  19. matlab中图像显示函数
  20. -Dmaven.multiModuleProjectDirectory system property is not set. Check $M2_HOME e

热门文章

  1. 记录:seekbar进度条宽度和滑块高度一致问题
  2. 并发,同步,异步以及事件驱动编程的相关技术
  3. Vmware安装MacOS提示请选择您要安装的macOS的磁盘
  4. 计算机中的windows任务管理器在哪,window任务管理器在哪,windows7如何重装
  5. 设备间子系统的工程技术
  6. 云服务器网站免备案怎么用,云服务器如何使用免备案功能访问网站
  7. 主仆渡河问题 ----python
  8. 运维排查篇 | 访问nginx出现403错误
  9. 联想e480一键恢复小孔_联想一键恢复的使用方法
  10. phaser java_java并发编程:Phaser同步工具原理