精华内容
下载资源
问答
  • java容器介绍 本文目录java容器介绍泛型的简单介绍Comparable和ComparatorCollectionListArrayListLinkedListVectorSetHashSetLinkedHashSet+...
  • C++STL容器大全

    2020-03-23 11:12:55
    它的底层利用了C++类模板和函数模板的机制,由三大部分组成:容器、算法和迭代器。 目前STL有六大组件 容器 container 算法 algorthm 迭代器 iterator 仿函数 function object 适配器 adaptor 空间配置器 allocator ...

    该博文为原创文章,未经博主同意不得转载,如同意转载请注明博文出处
    本文章博客地址:https://cplusplus.blog.csdn.net/article/details/105044302

    展开全文
  • //array转set s = new String[]{"A", "B", "C", "D","E"}; Set<String> set = new HashSet<>(Arrays.asList(s)); //set转array String[] s1= set.toArray(new String[0]);...String[] s1= (String[]) set....
  • 同步容器通过synchronized关键字修饰容器保证同一时刻内只有一个线程在使用容器,从而使得容器线程安全。synchronized的意思是同步,它体现在将多线程变为串行等待执行。(但注意一点,复合操作不能保证线程安全。...

    什么是同步容器?

    同步容器通过synchronized关键字修饰容器保证同一时刻内只有一个线程在使用容器,从而使得容器线程安全。synchronized的意思是同步,它体现在将多线程变为串行等待执行。(但注意一点,复合操作不能保证线程安全。举例:A线程第一步获取尾节点,第二步将尾结点的值加1,但在A线程执行完第一步的时候,B线程删除了尾节点,在A线程执行第二步的时候就会报空指针)

    什么是并发容器?

    并发容器指的是允许多线程同时使用容器,并且保证线程安全。而为了达到尽可能提高并发,Java并发工具包中采用了多种优化方式来提高并发容器的执行效率,核心的就是:CAS(无锁)COW(读写分离)分段锁

    同步容器整理

    1. Vector

    Vector和ArrayList一样实现了List接口,其对于数组的各种操作和ArrayList一样,区别在于Vertor在可能出现线程不安全的所有方法都用synchronized进行了修饰。

    2. Stack

    Stack是Vertor的子类,Stack实现的是先进后出的栈。在出栈入栈等操作都进行了synchronized修饰。

    3. HashTable

    HashTable实现了Map接口,它实现的功能HashMap基本一致(HashTable不可存null,而HashMap的键和值都可以存null)。区别在于HashTable使用了synchronized修饰了方法。

    4. Collections提供的同步集合类

    List list = Collections.synchronizedList(new ArrayList());
    Set set = Collections.synchronizedSet(new HashSet());
    Map map = Collections.synchronizedMap(new HashMap());
    其实以上三个容器都是Collections通过代理模式对原本的操作加上了synchronized同步。而synchronized的同步粒度太大,导致在多线程处理的效率很低。所以在JDK1.5的时候推出了并发包下的并发容器,来应对多线程下容器处理效率低的问题。

    并发容器整理

    1. CopyOnWriteArrayList

    CopyOnWriteArrayList相当于实现了线程安全的ArrayList,它的机制是在对容器有写入操作时,copy出一份副本数组,完成操作后将副本数组引用赋值给容器。底层是通过ReentrantLock来保证同步。但它通过牺牲容器的一致性来换取容器的高并发效率(在copy期间读到的是旧数据)。所以不能在需要强一致性的场景下使用。

    2. CopyOnWriteArraySet

    CopyOnWriteArraySet和CopyOnWriteArrayList原理一样,它是实现了CopyOnWrite机制的Set集合。

    3. ConcurrentHashMap

    ConcurrentHashMap相当于实现了线程安全的HashMap。其中的key是无序的,并且key和value都不能为null。在JDK8之前,ConcurrentHashMap采用了分段锁机制来提高并发效率,只有在操作同一分段的键值对时才需要加锁。到了JDK8之后,摒弃了锁分段机制,改为利用CAS算法。

    4. ConcurrentSkipListMap

    ConcurrentSkipListMap相当于实现了线程安全的TreeMap。其中的key是有序的,并且key和value都不能为null。它采用的跳跃表的机制来替代红黑树。为什么不继续使用红黑树呢?因为红黑树在插入或删除节点的时候需要旋转调整,导致需要控制的粒度较大。而跳跃表使用的是链表,利用无锁CAS机制实现高并发线程安全。

    5. ConcurrentSkipListSet

    ConcurrentSkipListSet和ConcurrentSkipListMap原理一样,它是实现了高并发线程安全的TreeSet。

    Queue类型

    阻塞型

    1. ArrayBlockingQueue

    ArrayBlockingQueue是采用数组实现的有界阻塞线程安全队列。如果向已满的队列继续塞入元素,将导致当前的线程阻塞。如果向空队列获取元素,那么将导致当前线程阻塞。采用ReentrantLock来保证在并发情况下的线程安全。

    2. LinkedBlockingQueue

    LinkedBlockingQueue是一个基于单向链表的、范围任意的(其实是有界的)、FIFO 阻塞队列。访问与移除操作是在队头进行,添加操作是在队尾进行,并分别使用不同的锁进行保护,只有在可能涉及多个节点的操作才同时对两个锁进行加锁。

    3. PriorityBlockingQueue

    PriorityBlockingQueue是一个支持优先级的无界阻塞队列。默认情况下元素采用自然顺序升序排列。也可以自定义类实现compareTo()方法来指定元素排序规则,

    4. DelayQueue

    DelayQueue是一个内部使用优先级队列实现的无界阻塞队列。同时元素节点数据需要等待多久之后才可被访问。取数据队列为空时等待,有数据但延迟时间未到时超时等待。

    5. SynchronousQueue

    SynchronousQueue没有容量,是一个不存储元素的阻塞队列,会直接将元素交给消费者,必须等队列中的添加元素被消费后才能继续添加新的元素。相当于一条容量为1的传送带。

    6. LinkedTransferQueue

    LinkedTransferQueue是一个有链表组成的无界传输阻塞队列。它集合了ConcurrentLinkedQueue、SynchronousQueue、LinkedBlockingQueue等优点。具体机制较为复杂。

    7. LinkedBlockingDeque

    LinkedBlockingDeque是一个由链表结构组成的双向阻塞队列。所谓双向队列指的是可以从队列的两端插入和移出元素。

    非阻塞型

    1. ConcurrentLinkedQueue

    ConcurrentLinkedQueue是线程安全的无界非阻塞队列,其底层数据结构是使用单向链表实现,入队和出队操作是使用我们经常提到的CAS来保证线程安全。

    展开全文
  • 压力容器常用查询大全
  • Docker容器命令大全

    2019-11-21 14:44:47
    进入容器 导入容器

    在这里插入图片描述在这里插入图片描述

    在这里插入图片描述在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述

    进入容器

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    导入容器

    在这里插入图片描述

    展开全文
  • Docker 容器命令大全

    2019-09-18 07:27:10
    容器命令: 命令 描述 attach 将本地标准输入,输出和错误流转到到正在运行的容器 build 从Dockerfile构建映像 commit 根据容器的更改创建新镜像 cp 在容器和本地文件系统之间复制文件/文件夹 create ...

    容器命令:

    命令描述
    attach将本地标准输入,输出和错误流转到到正在运行的容器
    build从Dockerfile构建映像
    commit根据容器的更改创建新镜像
    cp在容器和本地文件系统之间复制文件/文件夹
    create创建一个新容器
    diff检查容器文件系统上文件或目录的更改
    events从服务器获取实时事件
    exec在正在运行的容器中运行命令
    export将容器的文件系统导出为tar存档
    history显示镜像的历史记录
    images列出镜像
    import从tar存档导入内容以创建文件系统镜像
    info显示系统范围的信息
    inspect返回有关Docker对象的低级信息
    kill杀死一个或多个正在运行的容器
    load从tar存档或STDIN加载镜像
    login登录Docker Hub
    logout从Docker Hub退出
    logs获取容器的日志
    pause暂停一个或多个容器中的所有进程
    port列出端口映射或容器的特定映射
    ps列出容器
    pull从注册表中提取镜像或存储库
    push将镜像或存储库推送到注册表
    rename重命名容器
    restart重新启动一个或多个容器
    rm删除一个或多个容器
    rmi删除一个或多个镜像
    run在新容器中运行命令
    save将一个或多个镜像保存到tar存档(默认情况下流式传输到STDOUT)
    search在Docker Hub中搜索镜像
    start启动一个或多个已停止的容器
    stats显示容器资源使用情况统计信息的实时流
    stop停止一个或多个正在运行的容器
    tag创建一个引用SOURCE_IMAGE(源镜像)的标记TARGET_IMAGE(目标镜像)
    top显示容器的运行进程
    unpause取消暂停一个或多个容器中的所有进程
    update更新一个或多个容器的配置
    version显示Docker版本信息
    wait阻止,直到一个或多个容器停止,然后打印退出代码

    更多更全面的Docker命令大全

    展开全文
  • 压力容器常用资料查询大全
  • docker镜像容器命令docker指令镜像images容器containernignx,tomcat,elasticsearch部署nignx部署tomcat部署elasticsearch部署portainer 可视化界面提交镜像 docker指令 docker version:查看相关版本信息 docker ...
  • 压力容器
  • Docker容器启动参数大全与详细说明

    万次阅读 2019-03-23 20:52:04
    《Docker容器启动参数大全与详细说明 》 语法: docker run [OPTIONS] IMAGE [COMMAND] [ARG...] Docker 容器启动示例,这儿以启动 redis 容器为例,输入命令 “docker run -p 6868:6379 -v /data:/data -d....
  • String容器的用法大全

    2020-12-01 21:20:16
    String容器的用法大全 String容器的简介 本质:string是C++风格的字符串,而string本质上是一个类; string和char * 区别: ① char * 是一个指针; ② string是一个类,类内部封装了char*,管理这个字符串,是...
  • Redhat官方容器镜像大全Redhat官方容器镜像大全TomcatNginx Redhat官方容器镜像大全 Tomcat JBoss Web Server 3.1 - Tomcat 8 JBoss Web Server 3.1 - Tomcat 7 "Red Hat JBoss Web Server 5.3 - Tomcat 9 ...
  • 有色金属压力容器标准大全,针对国内标准,绝对超值。
  • STL中各容器方法大全

    2019-03-29 23:24:00
    包含vector、set、string、map、list、queue、stack、deque 等容器的各种方法、函数大全
  • 容器 #查看所有正在运行容器 dockers ps #查看所有容器 docker ps -a #查看所有容器id docker ps -a -q #停止容器 docker stop <容器ip> #停止所有容器 docker stop $(docker ps -a -q) #删除...
  • C++ STL容器 序列容器 顺序容器的元素排列次序与元素值无关,而是由元素添加到容器里的次序决定。包含:(forword_list,list,queue,priority_queue,stack,deque,vector,array(虽然他被归为序列容器,但是并不满足...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,938
精华内容 7,175
关键字:

容器大全