恢复内容开始 一、线程中安全问题产生的原因。 1、多个线程在操作共享数据。 2、操作共享数据的线程代码有多条。 当一个线程在执行操作共享数据的多条代码过程中,其他线程参与了运算,就会导致线程安全问题的产生。 解决: 将多条操作共享数据的线程代码封装起来,当有线程在执行这些代码的时候, 其他线程则不可 ...
分类:
编程语言 时间:
2020-06-03 23:35:48
阅读次数:
100
1:实现单例模式的几种写法 1:构造函数私有化,提供公共静态方法给外面访问,定义一个静态变量保存实例 加上双重判断和锁 这个也叫懒汉单例模式 在单例类里面定义方法,方法是先执行 2:静态构造函数,由CLR控制,且只调用一次,也叫饿汉单例模式, 定义的静态方法必须先构造这个实例再执行 为什么使用单例 ...
分类:
其他好文 时间:
2020-05-18 12:02:48
阅读次数:
56
支持多线程的 Redis 6.0 版本于 2020-05-02 终于发布了,为什么 Redis 忽然要支持多线程?如何开启多线程?开启后性能提升效果如何?线程数量该如何设置?开启多线程后会不会有线程安全问题?多线程的实现原理是怎样的? 总结下来就是以下几点1.虽然支持,默认不开启2.配置线程数要小于 ...
分类:
编程语言 时间:
2020-05-13 20:37:06
阅读次数:
99
一、同步代码块 package com.synchronized1; // 买票示例 // 使用同步代码块解决线程安全问题 public class TicketRunnableImp implements Runnable { private int ticket = 100; Object o= ...
分类:
编程语言 时间:
2020-05-11 23:52:44
阅读次数:
77
今天百度一些资料偶然发现SimpleDateFormat居然不是线程安全的,平时使用时根本没有考虑,万幸今天发现了这个问题,得把写的代码得翻出来整理一下了。 一般我们使用的SimpleDateFormat一般是这样写的: public void method() { ... DateFormat d ...
分类:
编程语言 时间:
2020-05-10 21:40:17
阅读次数:
71
1、线程安全:多线程单线程程序运行结果一致 线程不安全:多线程单线程程序运行结果不一致 2、导致线程安全问题原因 全局变量或者静态变量引起; 一般情况下,多个线程只读数据,不写数据,则线程是安全的; 若多个线程同时执行写操作,则容易导致线程不安全问题发生。 根本原因: 多个线程操作共享的数据 操作共 ...
分类:
编程语言 时间:
2020-05-10 10:30:20
阅读次数:
57
Java还为线程安全提供了一些工具类,如ThreadLocal类,它代表一个线程局部变量,通过把数据放在ThreadLocal中就可以让每个线程创建一个该变量的副本,从而避免并发访问线程安全问题。除此之外,Java5还新增了大量的线程安全类。 1.ThreadLocal类 早在JDK1.2推出之时, ...
分类:
编程语言 时间:
2020-05-04 17:29:59
阅读次数:
66
HashMap的线程不安全主要体现在下面两个方面: 在JDK1.7中,当并发执行扩容操作时会造成环形链和数据丢失的情况。 扩容逆序和环形:见上一篇文章中的头插法以及bilibili视频,https://www.bilibili.com/video/BV1vE411v7cR?p=4 数据丢失: 在JD ...
分类:
编程语言 时间:
2020-05-03 14:28:54
阅读次数:
158
概述 java有各种各样的锁,并且每种锁的特性不同,合理场景下利用锁可以展现出非常高的效率。synchronized内置锁就是Java的一种重量级锁,它能够解决并发编程中出现多个线程同时访问一个共享,可变的临界资源时出现的线程安全问题。让多个线程序列化访问临界资源,同一时刻,只能有一个线程访问临界资 ...
分类:
编程语言 时间:
2020-05-01 01:32:04
阅读次数:
85
测试报告 遇到的bug 遇到了线程安全的bug,bug的原因是必须在调用api之前先获取到token,而获取token和调用api都需要新开一个线程,解决方法为通过加锁来解决线程安全问题 遇到了页面的适配问题,在不同的手机上显示的页面差距非常大,解决方法为替换为根据不同屏幕自动调整的relative ...
分类:
其他好文 时间:
2020-04-29 00:42:39
阅读次数:
79