CodeGym University
学习
课程
任务
调查和小测验
游戏
帮助
提醒时间表
社区
用户
论坛
聊天
文章
成功故事
活动
评论
订阅服务
浅色主题
课程
评论
关于我们
开始
开始学习
立即开始学习
目标地图
课程
Java 核心
级别 7
你已达到第 17 级!
Java 核心
第 7 级,
课程 0
恭喜,你已经完成目标的第六级!你接触了一个重要的主题(线程),并完成了 34 项任务(如果你留下一些任务准备以后完成,可能会少于这个数)。在第七级,我们将继续学习线程。在不久的将来,我们将使用 static 方法 yield 和关键字 synchronized 和 volatile。
多线程问题:访问共享资源
Java 核心
第 7 级,
课程 1
当然,线程功能很强大,并且给程序员带来了令人难以置信的机会(和一大堆复杂问题)。不同的线程根据其所执行的任务来更改不同对象的状态。当然,这些线程也可能互相不服!但最可怕的部分发生在 Java 机器的深处...听起来是不是很有趣?
有关共享资源的任务:控制台输出
Java 核心
第 7 级,
课程 2
一位富有智慧的老师曾经说过,程序是一组对象,“小型机器人”(线程)在其中爬过并执行方法中包含的命令。但是,高大的小型机器人迭戈不能剥夺你执行一些涉及共享资源的任务的乐趣。只有两个任务,但是你将必须做出一些思考。
线程不是独立的!而是同步的!
Java 核心
第 7 级,
课程 3
不受控制的线程切换是另一个问题。我们面对一个合理的问题:为什么不让线程做它们想做的事情并自行控制切换呢?实际上,这种方法会带来更多问题。这节课讲述这些问题以及应该如何做。
而是同步的!实用版本
Java 核心
第 7 级,
课程 4
什么都瞒不住迭戈老师。他了解到你在上一课中熟悉了阻塞线程,了解了什么是互斥锁及其使用方法,以及 synchronized 关键字的作用是什么。迭戈大师给你准备了五个有关 synchronized 的任务!
本地缓存:多线程问题。volatile
Java 核心
第 7 级,
课程 5
休斯顿,我们在使用多线程时遇到了问题!是的,又一次遇到问题。这次与缓存内存的使用方式有关。这正是处理器放置其最常用变量的缓存。处理器这样做是为了加快工作速度,但这里却是万恶之源。很快,你将了解到什么是缓存以及如何解决此问题。
练习使用 volatile
Java 核心
第 7 级,
课程 6
volatile 修饰符使得始终在所有线程共享的常规内存中读取和写入变量。多亏了迭戈,你可以马上开始执行有关 volatile 的两项任务。你距离初级 Java 开发人员的称号将只有一步之遥。
yield(放弃优先权)
Java 核心
第 7 级,
课程 7
你已经知道处理器在线程之间不断切换。每个线程都被分配了一个时间片 — 一段处理器时间。当时间到了,处理器将切换到另一个线程并执行其命令。如果你需要提前结束当前线程的时间片,Thread 类的 static 方法 yield 会提供帮助!
教授提供的有用链接 – 17
Java 核心
第 7 级,
课程 8
智慧星教授特意为你找到一个非常有趣的在线课程,你将学到更多有关 synchronized、volatile 和 yield 的知识。他建议你学习此课程,但不要太深入:稍后你将正式学习此主题。
你的计算机内部有什么?
Java 核心
第 7 级,
课程 9
我们需要 Java 和其他语言来促进人与计算机之间的交流。处理再简单的操作也要利用关键的计算机组件,例如外围设备、输入/输出子系统、CPU 和内存。本视频介绍每次使用鼠标单击时计算机所执行的步骤。
奖励任务 | 第 10 课 | 第 7 级
Java 核心
第 7 级,
课程 10
怪杰船长打电话找你。他有几个惊喜礼物要给你!更准确地说,不是几个任务,也不算惊喜,而是十个任务,目的是巩固你学到的有关线程的知识。真正好奇的人可试着完成这三个难度更高的奖励任务。例如,在其中的一项任务中,你会在餐厅里遇到一个不幸的服务生。
Please enable JavaScript to continue using this application.