容器的同步控制与只读设置

一.同步控制: 用于多线程并发访问容器资源的线程安全

常用的容器ArrayList HashMap HashSet都是线程不安全的
Collections 中提供了SynchronizedXxx() 方法用于包装容器为同步的 

List<String> list = new ArrayList<String>();

List<String> list2 = Collections.synchronizedList(list); // list为线程安全

二.容器只读控制

容器只读设置 util包下的Collections提供了三种办法:
   (1) emptyXxx()
   (2) singletonXxx()
   (3) unmodifiableXxx()

Map<String , String> map = new HashMap<String ,String>();
        map.put("num1", "value1");
        map.put("num2", "value2");
        map = Collections.unmodifiableMap(map); // 不能再更改容器内容 ,只允许读取
        map.put("num3", "value3");   // 此行会报错

        List<String> list3 = Collections.singletonList(new String());
        list3.add("rimon1");
        list3.add("rimon2");  // 只能添加一个元素

    }
    public static Set<String> emp(Set<String> set){
        if(set == null){
            return Collections.EMPTY_SET;  //防止出现 nullpointerException
        }
        return set;
时间: 2024-08-13 18:38:56

容器的同步控制与只读设置的相关文章

常用java web容器http长连接超时设置

1.http长连接相关知识 http长连接对我们来说并不陌生,但长连接并不是永远不会关闭.对于HTTP长连接需要注意下面几点: keepalive_timeout指的是web服务器发送完最后一个响应报文后,开始计时,如果在keepalive_timeout指定的时间内还没有收到该连接上的下次请求,则关闭该连接. http长连接的keepalive_time和tcp连接的keepalive_timeout不同. http keep-alive与tcp keep-alive,意图不一样.http k

关于select的只读设置

在select中我们发现它不支持readonly属性,这时我们可以使用取消焦点的方式来处理!onfocus="this.blur()"这个方法这样使得不能获取鼠标的焦点,同时我们还应该知道如果的是将一个标签设置为只读的方式,我们应该使用readonly来设置,不能使用disabled来设置,否则在js中我们不能很方便的将标签中的值传给后台.说的不对的地方还请各位指点!

使用Grafana 展示Docker容器的监控图表并设置邮件报警规则

一.Docker 容器监控报警方式 接着上篇文章的记录,看到grafana的版本已经更新到4.2了,并且在4.0以后的版本中,加入了Alert Notifications 功能,这样在对容器 监控完,可以加入报警规则.根据官网介绍,报警方式也有很多种,常见的Email.Slack即时通讯.webhook等. 本篇记录的是邮件的报警设置.环境和上篇基本一致,都是在Docker 平台测试环境下,另外本篇使用的grafana容器的版本是用的 dockerhub上最新版本,该版本为grafana/gra

Cookie中的三个容器request,session,application的设置和获取

public class SaveServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletR

easyui-textbox 只读设置取消

<script> $(function () { $("#txt_beginAmount").attr('readonly', true); $("#txt_beginAmount").attr('readonly', false); }) </script> <input type="text" class="txt02 easyui-textbox" name="txt_beginA

Java容器-引用分类与部分Map用法

一.目录 1.引用分类 2.了解WeakHashMap.IdentityHashMap.EnumMap 3.同步控制与只读设置 二.代码实现 1.引用分类(面试) 强引用(StrongReference):引用指向对象,gc运行时,不回收. 弱引用(SoftReference):gc运行时可能回收(当jvm内存不足时). 软引用(WeakReference):当gc运行时,对象回收. 虚引用(phantomReference):类似于无银用,主要跟踪对象被回收的对象,不能单独使用,要与Refer

容器(Queue/Deque/Enumeration/Hashtable/Properties等)

一.队列(Queue/Deque) Queue:单向 队列通常FIFO(先进先出).优先级队列和堆栈队列(后进先出) add 增加一个元索 如果队列已满,则抛出一个IIIegaISlabEepeplian异常 remove 移除并返回队列头部的元素 如果队列为空,则抛出一个NoSuchElementException异常 element 返回队列头部的元素 如果队列为空,则抛出一个NoSuchElementException异常 offer 添加一个元素并返回true 如果队列已满,则返回fal

如何设置Docker容器中Java应用的内存限制

如果使用官方的Java镜像,或者基于Java镜像构建的Docker镜像,都可以通过传递 JAVA_OPTS 环境变量来轻松地设置JVM的内存参数.比如,对于官方Tomcat 镜像,我们可以执行下面命令来启动一个最大内存为512M的tomcat实例 docker run --rm -e JAVA_OPTS='-Xmx512m' tomcat:8 在日志中,我们可以清楚地发现设置已经生效 "Command line argument: -Xmx512m" 02-Apr-2016 12:46

mysql只读模式的设置方法与实验【转】

在MySQL数据库中,在进行数据迁移和从库只读状态设置时,都会涉及到只读状态和Master-slave的设置和关系. 经过实际测试,对于MySQL单实例数据库和master库,如果需要设置为只读状态,需要进行如下操作和设置:      将MySQL设置为只读状态的命令:# mysql -uroot -pmysql> show global variables like "%read_only%";mysql> flush tables with read lock;mysq