0513多线程

死锁

当线程任务中出现了多个同步(多个锁)时,如果同步中嵌套了其他的同步。这时容易引发一种现象:程序出现无限等待,这种现象我们称为死锁

线程通信

生产者消费者模式

模拟街道案例

wait(),notify(),notifyAll()实现线程通信

0513网络编程

IP

定义网络上不同节点

IPV4(32位) IPV6(128位)

非注册IP:192.168.0.0~192.168.255.255

特殊IP:127.0.0.1 <==> local host 本机IP

http://java.net类 InetAddress

InetAddress address1=InetAddress.getLocalHost();

System.out.println(address1.getHostAddress());

System.out.println(address1.getHostName());

InetAddress address2=InetAddress.getByName("百度一下,你就知道");

端口

区分软件的

定义端口 2个字节 0~65535

相同的协议下端口不能冲突

端口自定义越大越好,8000以上,8000以内预留端口号

特殊的端口号:

80: http

8080: tomcat

1521: Oracle端口号

3306: mysql端口号

InetSocketAddress

此类实现 IP 套接字地址(IP 地址 + 端口号)

InetSocketAddress i=new InetSocketAddress("127.0.0.1",8888);

System.out.println(i.getAddress().getHostName());

System.out.println(i.getHostName());

System.out.println(i.getPort());

URL

统一资源定位符|器

互联网的三大基石: html http url

协议:http

* 域名:http://www.baidu.com

* 端口:80 默认80

* 资源:index.html?name=zhangsan&age=123#a

* 百度一下,你就知道

URL 代表一个统一资源定位符,它是指向互联网“资源”的指针

URL

URL url=new URL("http://www.baidu.com:80/index.html?name=zhangsan&age=123#a");

String getFile() 获取此 URL 的文件名。

System.out.println(url.getHost());

getQuery() 获取协议

网络爬虫原理

协议

规范 合同

udp

非面向连接的 写信 ,不安全,效率高,协议简单,开销小,大小有限制一般不超过60k

udp如何实现Socket编程:

发送端和接收端是平等的

DatagramSocket 此类表示用来发送和接收数据报包的套接字

DatagramSocket(int port)

DatagramPacket 此类表示数据报包。

udp发送流程

1.创建发送端,指明发送端的端口

2.准备数据,转为字节数组

3.把数据打包 指明接收端的地址和端口号 DatagramPacket

4.发送数据

5.关闭

UDP基本流程:接收端

1.构建接受端,指定接受端端口

2.准备字节数组,用来存储接口收据的

3.把字节数组打包

4.阻塞式接收

5.处理数据

6.关闭

tcp

面向连接的 打电话 ,安全,效率低,开销大 3次握手:1.拨号 2.回访:响应 3.发送数据 ,基于IO穿出数据

tcp基本流程:服务端

1.构建服务端 ServerSocket 指定端口 ServerSocket(int port)

2.阻塞式监听 Socket accept()

3.一个客户端就是一个socket IO操作

4.关闭

tcp基本流程:客户端

1.创建客户端 Socket 指定服务端的ip和端口 Socket(String host, int port)

http://2.io操作

3.关闭

应用层如何与传输层进行沟通?

通过Socket套接字

面向Socket编程,Socket相当于插座,是两层之间沟通的接口,不同协议,Socket的实现不一样

同软件多个线程设置不同ip_5-13网络编程(附带多线程死锁,线程通信)相关推荐

  1. Linux C/C++ 开发(学习笔记十一 ):TCP服务器(并发网络网络编程 一请求一线程)

    Linux C/C++ 开发(学习笔记十一 ):TCP服务器(并发网络网络编程 一请求一线程) 一.TCP服务器(一请求一线程) 的原理 二.完整代码 三.测试 四.补充 一.TCP服务器(一请求一线 ...

  2. 8.Python基础学习笔记day8-正则表达式、网络编程、进程与线程

    8.Python基础学习笔记day8-正则表达式.网络编程.进程与线程 一.正则表达式 ''' 1. [1,2,3,4]中任意取3个元素排列: A43 = 4x3x2 = 24itertools.pe ...

  3. linux网络编程(四)线程池

    linux网络编程(四)线程池 为什么会有线程池? 实现简单的线程池 为什么会有线程池? 大多数的服务器可能都有这样一种情况,就是会在单位时间内接收到大量客户端请求,我们可以采取接受到客户端请求创建一 ...

  4. winform判断线程有没有完成_并发编程系列1:线程池的架构实现、大小配置、及四种线程池使用...

    △ 公众号回复关键词"架构" 即可领取<1500+BAT架构及面试专题合集> 本篇为线程池系列文章之一,不经常使用线程池的童鞋,还有对几种线程的使用不甚了解的童鞋,可以 ...

  5. 【Java 并发编程】多线程、线程同步、死锁、线程间通信(生产者消费者模型)、可重入锁、线程池

    并发编程(Concurrent Programming) 进程(Process).线程(Thread).线程的串行 多线程 多线程的原理 多线程的优缺点 Java并发编程 默认线程 开启新线程 `Ru ...

  6. 【CSDN软件工程师能力认证学习精选】Python网络编程(socket编程)

    CSDN软件工程师能力认证(以下简称C系列认证)是由中国软件开发者网CSDN制定并推出的一个能力认证标准.C系列认证历经近一年的实际线下调研.考察.迭代.测试,并梳理出软件工程师开发过程中所需的各项技 ...

  7. Linux网络编程3——多进/线程并发服务器

    视频链接 黑马程序员-Linux网络编程_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1iJ411S7UA?p=37 目录 一.高并发服务器 1.1 图 ...

  8. linux下网络编程设置非阻塞,UNIX网络编程 非阻塞connect的实现

    一.<UNIX网络编程>-非阻塞connect 在一个TCP套接口被设置为非阻塞之后调用connect,connect会立即返回EINPROGRESS错误,表示连接操作正在进行中,但是仍未 ...

  9. 网络编程(36)—— 线程安全函数和非线程安全函数

    今天研究下线程安全函数和非线程安全函数.什么是线程安全函数?我们知道在多线程编程中,线程安全问题是不容忽视的.只要存在多线程,就会存在多个线程访问同一段代码或者同一个全局变量的临界区,对于uc中标准函 ...

最新文章

  1. html5页面被键盘挡住,HTML5 虚拟键盘出现挡住输入框怎么办
  2. python 硬件自动化测试_村长告诉你:Python实现性能自动化测试竟然如此简单
  3. CentOS Linux 7编译安装Redis
  4. opencv图像-拼接线的处理
  5. Windows Server 2008 启用公共文件夹共享
  6. linux 下 ethtool 修改网卡eeprom
  7. idea打包Jar包
  8. 怀集天气预报软件测试,【天气】怀集要入夏?这份天气预报告诉你答案!
  9. 南阳OJ 题目97 兄弟郊游问题
  10. A股市股票行情实时数据最简封装API接口的python实现
  11. Visual Studio Ultimate 2013(VS2013旗舰版 下载地址及哈希校验)
  12. 课堂派作业第一题(附思路)已改完!
  13. 我国云计算中心大盘点
  14. 对于多人联机游戏中 游戏房间实现的想法
  15. APP行业基准营销数据怎么获取?快用这两个免费应用数据工具
  16. java之getResource方法
  17. 读书是在丰富你,读你自己
  18. AD使用笔记1 原理图与PCB布局同步实现
  19. ESP80266WiFi通信模块连接51单片机实现双向通信
  20. Office打开很慢解决办法

热门文章

  1. vue 加载体验优化
  2. 深入理解Emoji(三) —— Emoji详解
  3. CentOS 7.3 源码安装 OpenVAS 9
  4. CentOS(linux) 下JDK的安装
  5. 算法之【仿竖式算法】
  6. 了解的四大关键性概念
  7. Prim算法和Kruskal算法求最小生成树
  8. 关于数组名与指针的相互转换
  9. Apache防止DDOS***的模块--mod_evasive
  10. 毕业设计:基于Web实现多用户宿舍管理系统