27
8月11日
上午继续推进Java的进阶内容,主攻多线程模块。之前写的代码大多都是单线程顺序执行,接触多线程之后,才理解程序可以开辟多条执行路径同时工作。我了解了线程与进程的区别,学习线程的创建方式、线程状态、sleep休眠、线程安全问题以及锁机制。多线程看似可以提高程序运行效率,但也带来新的麻烦,多个线程同时操作共享数据容易出现数据错乱,这也是编程里很容易踩坑的地方,光看懂概念还不够,后续需要多敲代码去复现问题,加深理解。
下午学习Socket网络编程,这一部分把Java学习从本地程序拓展到了网络通信层面。搞懂了客户端与服务端的通信逻辑,Socket相当于两台设备之间通信的接口,依靠IO流完成数据的收发。把之前学过的IO流知识在这里串联起来,才感受到知识点之间是相互打通的。网络编程涉及端口、IP地址,还有连接建立、数据传输、断开连接整套流程,概念比较抽象,有些地方理解起来有些吃力。
今天学习的多线程和Socket都属于比较高阶的知识点,不再是简单的语法套用,更考验整体逻辑思维。很多理论看懂了,但上手写示例代码的时候还是会出现报错。之后打算多写简单的demo,把理论落实到实操,把今天模糊的知识点慢慢吃透。

浙公网安备 33010602011771号