(Java学习)六、多线程与网络编程

本文详细介绍了Java中的多线程概念,包括进程与线程的区别、线程的实现方式以及线程调度。重点讨论了线程同步的重要性,通过卖票案例展示了线程安全的概念,并讲解了同步代码块、同步方法、Lock锁以及生产者消费者模型的应用。同时,文章也提及了Java中的网络编程基础,包括UDP和TCP通信程序的实现。
摘要由CSDN通过智能技术生成

1、实现多线程

1.1 进程和线程

在这里插入图片描述
在这里插入图片描述

1.2 线程实现方式

在这里插入图片描述
在这里插入图片描述

1.3 线程调度与控制

在这里插入图片描述
Java是抢占式调度模型。

线程优先级高只是说明它获取CPU的几率高,但并不是每次都可以保证其实际运行时优先运行。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.4 多线程的实现方式

在这里插入图片描述

2、线程同步

2.1 案例:卖票

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
线程安全:当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替进行,并且在调用代码中不需要任何额外的同步或者协同,这个类都能表现出正确的行为,那么就称这个类为线程安全的。

2.2 同步代码块

在这里插入图片描述

2.3 同步方法

在这里插入图片描述
在这里插入图片描述
如果不需要线程安全的实现,建议使用ArrayList代替Vector。
HashTable实现了Map接口。如果不需要线程安全的实现,建议使用HashMap代替HashTable。

在这里插入图片描述
在这里插入图片描述
有的时候就算需要线程安全,也没有使用Vector。使用的是Collections.synchronizedList方法。

2.4 Lock锁

在这里插入图片描述
一般结合try finally进行加锁和释放锁操作,如下:

在这里插入图片描述

2.5 生产者消费者案例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3、网络编程

3.1 概述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2 UDP通信程序

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3.3 TCP通信程序

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
即发送一个输出结束的标记。服务器读到结束标记就不在readLine等待

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值