惠州做网站建设移动互联网开发学什么专业

张小明 2026/3/2 16:52:32
惠州做网站建设,移动互联网开发学什么专业,wordpress侧边栏文章目录,施工企业资质标准多线程 一、进程【理解】 1. 进程#xff1a;操作系统(OS)中#xff0c;每一个被执行的应用程序。 2. 注意#xff1a;目前操作系统支持多进程#xff0c;并发执行的任务。 3. 多进程并发执行的原理#xff1a;微观上串行(一个一个的进程进行执行#xff0c;获取cpu时间片…多线程一、进程【理解】1. 进程操作系统(OS)中每一个被执行的应用程序。2. 注意目前操作系统支持多进程并发执行的任务。3. 多进程并发执行的原理微观上串行(一个一个的进程进行执行获取cpu时间片的进程具有执行权)宏观上并行(所有的进程看似一起执行)二、线程1. 概念在一个进程中并发执行的多个任务。线程是进程执行任务的单元、单位。线程也被称为轻量级的进程。【理解】2. 主线程目前程序为单线程此线程以main函数的开始为开始以main函数的结束为结束此线程被称为主线程(主线程默认执行main函数)3. 线程的组成部分【理解】(1) cpu获取到cpu时间片的线程获取执行权(2) 数据栈空间独立(每一个线程有独立的栈空间)堆空间共享(多个线程可以操作同一个堆空间)。栈空间用于存储局部变量堆空间用于存储对象。(3) 程序代码4. 代码实现多线程【重点】(1) 第一种方式a. 类继承 java.lang.Thread 类覆盖 run方法b. 创建线程对象MyThread t1 new MyThread();c. 开启线程t1.start() ; // JVM默认执行 run方法(2) 第二种方式a. 类实现 java.lang.Runnable接口同时实现run方法b. 创建线程的目标对象Mytarget mt new MyTarget();c. 创建线程对象 Thread t2 new Thread(mt); // 将目标对象作为参数进行传递d. 开启线程t2.start(); // JVM默认调用run方法三、线程状态1. static void sleep(long ms)让当前线程处于休眠状态休眠的单位是毫秒(ms)处于休眠状态的线程进入有限期等待状态 。sleep方法会让当前线程释放cpu但是不释放锁标记。2. void join() : 让某 线程加入到自身任务中在哪个线程中调用其他线程join方法则代表此线程让步其他线程优先执行此线程从而进入无限期的等待状态。例如在主线程中main函数中 t.join() ; 代表主线程让步于t线程执行四、线程同步【重点】1. 临界资源多线程并发时被多个线程共享的同一个对象称为临界资源。2. 原子操作不可以分割的多步操作被视为一个整体其执行顺序和步骤不能被打破。3. 线程同步多线程并发访问时为了保证临界资源的正确性从而不破坏操作中的原子操作。(保护原子操作不能被破坏)4. 线程同步的两种方式(1) 同步代码块对临界资源对象进行加锁。a. 定义位置方法内部b. 利用 synchronized 对临界资源加锁c. 语法 synchronized(临界资源对象){// 原子操作}d. 执行的原理当线程获取临界资源的锁标记时锁标记空闲则能获取该对象的锁标记获取锁标记之后可以执行同步代码块{}中的代码而且只有当{}中所有的内容全部执行完才释放拥有的锁标记但是当线程获取临界资源对象的锁标记时锁标记被其他线程占用则此线程进入阻塞状态(Blocked状态)只有当其他线程释放锁标记此线程获取锁标记才结束阻塞状态同时获取cpu可以执行{}中 的内容。(2) 同步方法a. 用 synchronized修饰 方法被 synchronized修饰的方法称为同步方法b. 语法修饰符 synchronized 返回值类型 方法名(形参列表)throws 异常{// 原子操作}c. 同步方法等价于 同步代码块是对当前对象进行加锁synchronized(this){// 原子操作}五、线程间的通信1. java.lang.Object类中提供了用于线程间通信的方法等待wait与通知notify2. 等待wait() :(1) wait方法的调用需要使用在该对象的同步代码块中(2) 如果一个线程调用了 wait方法此线程进入等待状态wait() --进入无限期等待状态(3) wait方法会当前线程释放锁标记同时释放cpu3. 通知(1) notify():通知一个线程从等待状态结束(2) notifyAll(): 通知所有的线程从等待结束注意notify()/notifyAll的应用需要使用在该对象的同步代码块中notify()/notifyAll:只是起到通知的作用不释放该线程拥有的锁标记。面试题目写出 sleep(long ms)方法 和 wait() 方法区别解 析sleep(long ms):让线程进入休眠状态(有限期等待状态)同时释放cpu但是不释放锁标记wait()方法让当前线程进入无限期等待状态释放cpu同时也释放锁标记。面试题目写出 ArrayList 和 Vector的区别解析 ArrayList线程不安全方法为非同步方法运行效率较高。Vector:线程安全方法为同步方法不同线程需要等待锁标记效率相对较低。面试题目HashMap 和 Hashtable的区别解析 Hashtable线程安全方法为同步方法运行效率相对较低。HashMap :线程不安全方法为非同步方法运行效率相对较高。六、线程池 【开发应用】1. 线程池线程容器预先创建一些线程存储在池中线程池中线程可以被重复的使用。2. 线程池的好处减少创建线程和销毁线程的次数反复使用池的线程从而提高效率。3. 常用的线程池对应接口和类(位于 java.util.concurrent 包中)(1) Executor 线程池根接口、顶级接口。(2) ExecutorService : 是 Executor的子接口是线程池常用接口。a. submit(Runnable r)将 Runnable类型的任务提交给线程池。b. submit(Callable V c) :将Callable类型的任务提交给线程池。c. shutdown()将线程池关闭从而线程池自动销毁所有线程对象。(3) Executors线程池对应工具类(工厂类提供线程池对象的类)内容提供大量静态方法用于获取线程池对象a. static ExecutorService newFixedThreadPool(int n) :创建一个可重复固定个数线程的线程池对象参数代表线程的数量。b. static ExecutorService newCachedThreadPool():创建一个线程个数为动态的线程池对象线程池的线程个数没有上限。七、Callable接口(位于java.util.concurrent包) 【开发应用】1. JDK5.0之后提出一个Callable接口应用类似于 Runnable接口代表一个线程任务。2. Callable接口带有泛型常用的方法为V call()带有泛型类型的返回值可以抛出任意类型异常。3. 方法的调用(1) 同步调用调用者一旦发生方法的调用则调用者需要停下被调用的方法方法先执行被调用的方法执行完毕之后返回到调用位置则调用者才能继续往下执行。例如商场购物(2) 异步调用调用者一旦发生方法的调用调用者立即可以执行自身后续的内容。例如网上购物。4. Future的应用(1) Future接口可以接收异步计算结果例如pool.submit(c); 对于 Callable任务的结果处理(2) Future中常用的方法V get()从Future中获取结果。八、常用的集合补充1. 队列结构先进的先出后进后出。(FIFO)2. Queue是 Collection子接口模拟队列结构先进先出特点。(位于 java.util 包中)【练习】常见的一些方法(1) add(Object o):往队列中添加一个元素。(2) offer(Object o):往队列中添加一个元素。(3) E poll() : 获取队头元素并移除队头元素。3. BlockingQueue: 是 Queue的子接口位于java.util.concurrent包中。(1) ArrayBlockingQueue:底层数组实现需要指定容量(2) LinkedBlockingQueue:底层链表实现如果不指定容量默认大小为2147483647的容量也可以指定容量。4. LinkedList是Queue的实现类5. Collections 方法的补充【扩充】(1) static Collection synchronizedCollection(Collection c): 将不安全的Collection集合转换为安全性的(2) static Set synchronizedSet(Set s)将不安全的Set集合转换为安全性的(3) static Map synchronizedMap(Map map):将不安全的Map转换为安全性的(4) static List synchronizedList(List list):将不安全的list转换为安全性的6. Lock(锁) 的应用【扩充】(1) Lock:位于 java.util.concurrent.locks 包中比之前的synchronized 使用更灵活和广泛。(2) Lock 接口中方法a. void lock() 获取锁b. void unlock() 释放锁 。注意通常将 unlock()方法调用放于 finally中(3) ReentrantLock是 Lock接口的实现类7. ReadWriteLock (读写锁)的应用 java.util.concurrent.locks 包中 【扩充】(1) ReadWriteLock 是一种支持一写多读的读写锁可以分配读锁和写锁。(2) ReentrantReadWriteLock是 ReadWriteLock 的实现类Lock readLock(): 获取读锁Lock writeLock():获取写锁(3) 读写之间的约束读-读 不互斥读-写 互斥写-读 互斥写-写 互斥(4) 应用场景读操作次数远远大于写操作次数时效率提高。总结代码实现多线程的方式。【面试及应用重点】(1) 类继承 Thread类同时覆盖run方法-》线程执行体创建线程对象调用start方法开启线程(2) 类实现Runnable接口同时实现run方法--》线程执行体创建目标对象创建线程对象(将目标对象作为参数传递)利用start开启线程(3) 类实现Callable接口(直接使用匿名内部类)同时实现call方法--》线程执行体(Callable是带有泛型泛型约束call方法的返回值类型)借助线程池完成Callable类型的任务注意以上三种方式都可以利用线程池完成线程任务。8. 线程安全并且高效的一些集合类(1) CopyOnWriteArrayList位于java.util.concurrent包中a. 在写操作(改变集合元素内容的方法)中进行加锁读操作不加任何锁为了保证线程的安全性写写操作由于是加锁操作相互互斥但是写操作时会在原有文本的基础上拷贝一个新的文本在新的文本上进行写操作最终覆盖掉原有文本。读与写操作不互斥读的时候直接读取原始数据写操作会在原始文本上完成复制之后再进行写操作。b. 牺牲写操作的效率从而提高读操作的效率c. 应用场景读操作次数远远大于写操作次数时效率相对较高。面试题目CopyOnWriteArrayList 和 ArrayList的区别。解析 CopyOnWriteArrayList线程安全在写操作上进行加锁同时写操作时拷贝一个新的文本在读操作次数远远大于写操作次数效率仅次于ArrayListArrayList:运行效率高但是线程不安全。(2) ConcurrentLinkedQueue : 位于java.util.concurrent包中线程安全并且高效的Queue接口的实现类她是采用的比较交换算法(CAS算法)实现的线程安全。(3) ConcurrentHashMap : 位于 java.util.concurrent 包中a. 减小锁粒度(范围)从而较少锁冲突的可能性进而提高效率。b. ConcurrentHashMap将底层分为16个小的HashMap结构每一个称为段共16段。c. 注意全局操作(size() )的次数不频繁时效率相对较高。面试题目ConcurrentHashMap 和 HashMap 的区别。解析ConcurrentHashMap线程安全并且在全局操作不频繁时效率较高。是通过减小锁粒度从而提高效率ConcurrentHashMap不允许null作为键和值HashMap:线程不安全但是运行效率较高。允许null作为键和值。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站常用插件如何更改网站内链

还在为《最终幻想16》的画面限制而困扰吗?FFXVIFix是一款专门为《最终幻想16》设计的全方位优化工具,能够彻底解决超宽屏黑边、帧率锁死、截图卡顿等常见问题。这款免费开源项目通过简单安装就能显著改善你的游戏体验,让每一帧都更加流畅震撼…

张小明 2026/1/10 5:57:47 网站建设

网站框架搭建wordpress淘客程序

你是否曾经被智能体开发的复杂性所困扰?模型集成困难、工具调用混乱、记忆管理复杂...这些问题让很多开发者望而却步。AgentScope通过精心设计的架构和丰富的功能组件,为你提供了构建专业级智能体的完整解决方案。在本文中,我们将深入探讨如何…

张小明 2026/1/9 13:23:04 网站建设

网站建设地图素材网站优化的作用

第一章:DOTS 技术概览与ECS架构全景DOTS(Data-Oriented Technology Stack)是 Unity 推出的一套高性能技术栈,旨在通过数据导向的设计理念,充分发挥现代 CPU 的多核并行处理能力。其核心由三部分组成:ECS&am…

张小明 2026/1/11 23:35:51 网站建设

在国外做外国的网站合法吗wordpress查看爆破着ip

当你的代码探索工具突然"停止工作",索引进度条停滞不前,那种感觉就像在迷宫中失去了地图。本文将从实际使用场景出发,提供一套完整的诊断与优化方案,帮助你在30分钟内恢复Sourcetrail的正常工作状态。 【免费下载链接】…

张小明 2026/1/9 21:58:26 网站建设

在哪里建网站免费厦门最早做网站的公司

Airflow 3.0实战指南:如何用Python代码重塑你的AI工作流管理 【免费下载链接】airflow Airflow 是一款用于管理复杂数据管道的开源平台,可以自动执行任务并监控其状态。高度可定制化、易于部署、支持多种任务类型、具有良好的可视化界面。灵活的工作流调…

张小明 2026/1/11 1:19:31 网站建设

虚拟网站服务器网站空间 默认文档

5分钟搞定Draw.io Mermaid插件:可视化图表开发终极方案 【免费下载链接】drawio_mermaid_plugin Mermaid plugin for drawio desktop 项目地址: https://gitcode.com/gh_mirrors/dr/drawio_mermaid_plugin 还在为绘制复杂流程图而烦恼吗?每次手动…

张小明 2026/1/11 4:37:03 网站建设