CodeGym University
学习
课程
任务
调查和小测验
游戏
帮助
提醒时间表
社区
用户
论坛
聊天
文章
成功故事
活动
评论
订阅服务
浅色主题
课程
评论
关于我们
开始
开始学习
立即开始学习
目标地图
课程
全部目标
全部级别
创建和启动新线程
模块 2:Java 核心
第 11 级,
课程 1
如果你曾经想过如何启动和使用新线程,那么你很快就会在本课程中找到答案。你的老师里希·盖茨曼将为你提供相关帮助。但是,如果你从未想过这些,里希·盖茨曼也会进行讲解,因为现在时机已到。
健康睡眠
模块 2:Java 核心
第 11 级,
课程 2
即使程序有时也需要睡眠。线程更需要睡眠。为了使线程进入休眠状态,Java 提供了一个称为 sleep 的方法。它被声明为 Thread 类的 static 方法。这意味着它不与任何特定对象相关联。此方法的目的是使程序“进入休眠状态”一段时间。其工作原理如何呢?我们将在本课进行讲解!
停止线程:非官方版本
模块 2:Java 核心
第 11 级,
课程 3
假设用户告诉程序“从互联网下载文件。”主线程为此作业创建一个单独的子线程,并向其传递一个对象,该对象的 run 方法包含下载文件所需的全部必要操作。然后 — 哇 — 用户改变了下载文件的想法!我们如何取消作业并停止线程呢?
停止线程:官方版本
模块 2:Java 核心
第 11 级,
课程 4
这节课将包含许多激进的字词,例如“中断”。因为我们仍在研究停止线程的可能性和特殊性。我们将学习如何使用变量 isInterrupt 以及 isInterrupted() 和 interrupt() 方法的作用。
该级别的附加课程
模块 2:Java 核心
第 11 级,
课程 5
多线程:Thread类的方法 在本课中,我们将继续讨论多线程。我们将探讨Thread类及其几个方法的工作原理。 以前我们研究类方法的时候,一般都是这样写的:“方法名”->“方法做什么”。对于Thread类的方法,我们不能这样做:) 它们具有更复杂的逻辑,如果没有几个示例,几乎不可能弄清楚。 文章精选:Better together: Java and the Thread class 第 1 部分 — 线程 第 2 部分 — 同步 第 3 部分 — 交互 第 4 部分 — C
多线程问题:访问共享资源
模块 2:Java 核心
第 12 级,
课程 0
当然,线程功能很强大,并且给程序员带来了令人难以置信的机会(和一大堆复杂问题)。不同的线程根据其所执行的任务来更改不同对象的状态。当然,这些线程也可能互相不服!但最可怕的部分发生在 Java 机器的深处...听起来是不是很有趣?
线程不是独立的!而是同步的!
模块 2:Java 核心
第 12 级,
课程 1
不受控制的线程切换是另一个问题。我们面对一个合理的问题:为什么不让线程做它们想做的事情并自行控制切换呢?实际上,这种方法会带来更多问题。这节课讲述这些问题以及应该如何做。
本地缓存:多线程问题。volatile
模块 2:Java 核心
第 12 级,
课程 2
休斯顿,我们在使用多线程时遇到了问题!是的,又一次遇到问题。这次与缓存内存的使用方式有关。这正是处理器放置其最常用变量的缓存。处理器这样做是为了加快工作速度,但这里却是万恶之源。很快,你将了解到什么是缓存以及如何解决此问题。
yield(放弃优先权)
模块 2:Java 核心
第 12 级,
课程 3
你已经知道处理器在线程之间不断切换。每个线程都被分配了一个时间片 — 一段处理器时间。当时间到了,处理器将切换到另一个线程并执行其命令。如果你需要提前结束当前线程的时间片,Thread 类的 static 方法 yield 会提供帮助!
join — 等待线程结束
模块 2:Java 核心
第 12 级,
课程 4
假设主线程已经创建了一个子线程来执行某项任务。然后在某个时候,主线程需要由子线程执行的工作的结果。但是子线程尚未完成工作。主线程应该做什么?这个问题可以通过 join 方法解决。这节课将教你如何操作。
死锁及其原因
模块 2:Java 核心
第 12 级,
课程 5
“嗨,阿米戈!” “今天我要告诉你什么是死锁。” “嘿,你已经和我说过类似的事情了。” “是的,我做到了。但今天我们将更详细地考虑这个话题。” “在最简单的情况下,死锁涉及两个线程和两个互斥对象。互锁发生在:” A)每个线程都需要获取两个互斥量。 B) 第一个线程已经获取了第一个互斥锁,正在等待第二个互斥锁被释放。 C) 第二个线程已经获得了第二个互斥锁,正在等待第一个互斥锁被释放。 “这里有些例子: 例子 public class Student
避免死锁的策略
模块 2:Java 核心
第 12 级,
课程 6
“嗨,阿米戈!” “我想告诉你一些避免死锁的策略。” “最好的策略是一个深思熟虑的架构和一组规则来管理你何时以及以什么顺序使用锁(获取互斥体)。解决这个问题的经典方法是开发一个锁层次结构并建立某些锁永远不能被使用的规则在已经获得某些其他锁的状态下获得。” “比如,有时候锁是分级别的,要求一个线程按照从高级别到低级别的顺序去获取锁(但是不允许反方向获取锁)。另外,获取多个同级别的锁也是不可以的允许。” “例如,在前面的骑士示例中,我们可以为每个骑士添加一个唯一编号 (id),并
显示更多
1
...
17
18
19
20
21
...
35
Please enable JavaScript to continue using this application.