| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> 多线程和网络编程 -> 正文阅读 |
|
[网络协议]多线程和网络编程 |
目录 多线程三种实现方式 1.extends Thread
2.implements Runnable
3.implement Callable<T> ?
常用方法
线程安全问题 出现原因 : 多个线程操作共享数据 解决方法 : 1.同步代码块 (加锁)
2.同步方法 (方法加锁)
3.Lock锁 (自定义)
线程池 创建默认线程池
创建自定义线程池
volatile
原子性 多个操作是一个不可分割的整体;volatile不能保证原子性,synchronized可以 i++;两步操作不可保证原子性,解决办法:
ConcurrentHashMap 因为: HashMap 不能保证原子性 Hashtable 锁太多效率太低 底层原理 二次哈希 初始数组不变,0索引存长度为2的小数组,添加数据时:其他索引存小哈希表的地址值 和哈希表一致,1.7以前用链表,1.8之后长度大于8时,用红黑树 网络编程三要素 IP : 设备在网络中的地址,唯一标识 端口 : 应用程序在设备中的唯一标识(0~1023被占用,自己使用用1024以上的) 协议 : 数据在网络中的传输规则,常见的协议有UDP和TCP InetAddress 将IP地址封装为该类对象
UDP UDP面向无连接,速度快,一次最多传输64k,数据不安全,容易丢失数据 发送端
接收端
TCP 三次握手,四次挥手,通过IO流传输,无大小限制,速度较慢,数据安全 客户端
服务器端
不由自己new,而是通过socket对象获取的,可以称之为“网络IO流”,write方法可以通过网络跨电脑发送数据 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 19:26:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |