多线程

多线程

目录:

1.Map

2.Collections

3.多线程

1.Map

1.Map接口

HashMap 可以说是 Java 中最常用的集合类框架之一,是 Java 语言中非常典型的数据结 构,我们总会在不经意间用到它,很大程度上方便了我们日常开发。实现 Map 接口的类用 来存储键(key)-值(value) 对,Map 类中存储的键-值对通过键来标识,所以键值不能重复。

2.Map的实现类

Map 接口的实现类有 HashMap 和 TreeMap 等。
HashMap: 线程不安全,效率高. 允许 key 或 value 为 null
HashTable:线程安全,效率低. 不允许 key 或 value 为 null
Properties: Hashtable 的子类,key 和 value 都是 string
在这里插入图片描述

2.Collections

第一节Collections 工具类
类 java.util.Collections 提供了对容器操作的工具方法,与 Arrays 使用差不多。
void sort(List) //对 List 容器内的元素排序,按照升序进行排序。
void shuffle(List) //对 List 容器内的元素进行随机排列
void reverse(List) //对 List 容器内的元素进行逆续排列
void fill(List, Object) //用一个特定的对象重写整个 List 容器
int binarySearch(List, Object)//采用折半查找的方法查找特定对象

3.多线程

1.线程概念

多线程,说白了就是多条执行路径,原来是一条路径,就主路径(main),现在是多 条路径。就相当于高速路

2.程序、进程与多线程

程序是指令的集合,代码的集合;而进程是动态的概念,当程序在执行时,系统分配进 程;多线程是在同一进程下,充分利用资源 ,多条执行路径,共享资源 (cpu data code)

在这里插入图片描述

3.多线程优缺点

1)、优点
资源利用率更好;程序设计在某些情况下更简单;程序响应更快
2)、缺点
a)设计更复杂虽然有一些多线程应用程序比单线程的应用程序要简单,但其他的一般 都更复杂。在多线程访问共享数据的时候,这部分代码需要特别的注意。线程之间的交互往 往非常复杂。不正确的线程同步产 生的错误非常难以被发现,并且重现以修复。
b)上下文切换的开销 当 CPU 从执行一个线程切换到执行另外一个线程的时候,它需要 先存储当前线程的本地的数据,程序 指针等,然后载入另一个线程的本地数据,程序指针 等,最后才开始执行。这种切换称为“上下文切 换”(“context switch”)。CPU 会在一 个上下文中执行一个线程,然后切换到另外一个上下文中执 行另外一个线程。上下文切换 并不廉价。如果没有必要,应该减少上下文切换的发生。

1、创建 Thread 的子类

创建: 继承 Thread +重写 run
启动: 创建子类对象 对象.start()

2、实现 Runnable 接口(推荐)

面向接口编程,避免单继承局限
创建: 实现 Runnable +重写 run 启动:静态代理 Thread
a)、创建真实角色 实现类对象
b)、创建代理角色 Thread 对象+真实角色的引用
c)、代理角色.start()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值