摘要: Java TCP的基本操作参考前一篇:Java 网络编程 – 基于TCP实现文件上传 实现多用户操作之前先实现以下单用户操作,假设目前有一个用户: 账号:zs 密码:123 服务端: public class LoginServer { public static void main(String[ 阅读全文
posted @ 2020-04-05 18:16 行者老夫 阅读(1123) 评论(0) 推荐(0)
摘要: Java TCP 操作基本流程 一、创建服务器 1、指定端口, 使用serverSocket创建服务器 2、阻塞式连接 accept 3、操作:输入流 输出流 4、释放资源 二、创建客户端 1、使用Socket 创建客户端 + 服务器的ip和端口 2、操作:输入流 输出流 3、释放资源 实现文件上传 阅读全文
posted @ 2020-04-05 16:37 行者老夫 阅读(599) 评论(0) 推荐(0)
摘要: UDP 基本流程: UDP发送端基本流程: 1、使用DatagramSocket 指定端口 创建发送端 2、准备数据 一定转成字节数组 3、 封装成DatagramPacket 包裹,需要指定目的地 4、发送包裹send​(DatagramPacket p) * 5、释放资源 UDP接收端基本流程: 阅读全文
posted @ 2020-04-05 02:31 行者老夫 阅读(907) 评论(0) 推荐(0)
摘要: JDK提供的大多数内置锁都是可重入的,也就是 说,如果某个线程试图获取一个已经由它自己持有的锁时,那么这个请求会立 刻成功,并且会将这个锁的计数值加1,而当线程退出同步代码块时,计数器 将会递减,当计数值等于0时,锁释放。如果没有可重入锁的支持,在第二次 企图获得锁时将会进入死锁状态。 现实中,我们 阅读全文
posted @ 2020-04-04 16:11 行者老夫 阅读(508) 评论(0) 推荐(0)
摘要: 在 多线程中,每个线程会把数据从主内存中拷贝到自己的工作内存中,当线程完成计算后,再把工作内存的数据更新到主内存中,或者当主内存主数据有更新是,线程会去主内存取最新数据。但是,当线程特别忙时,就不会去主内存读最新数据了。 在 java 的多线程中 volatile 主要是为了保证数据的可见性同步,是 阅读全文
posted @ 2020-04-03 01:46 行者老夫 阅读(177) 评论(0) 推荐(0)
摘要: 指令重排是指:代码执行顺序和预期不一致。 代码运行一般步骤为: 1、从内存中获取指令解码 2、计算值 3、执行代码操作 4、把结果写回内存 而写回内存的操作比较耗时,CPU为了性能,可能不会等它完成,就进行对下一个指令解码计算。 发生指令重排是CPU为了提高性能,但必须是对结果不影响的情况,比如: 阅读全文
posted @ 2020-04-03 01:19 行者老夫 阅读(1221) 评论(0) 推荐(0)
摘要: 使用信号灯法实现生产消费者模式需要借助标志位。 下面以演员表演,观众观看电视为列,写一个demo 同一资源 电视: //同一资源 电视 class Tv { String voice; // 信号灯 // T 表示演员表演 观众等待 // F 表示观众观看 演员等待 boolean flag = t 阅读全文
posted @ 2020-04-02 23:35 行者老夫 阅读(348) 评论(2) 推荐(0)
摘要: 多线程通过管程法实现生产消费者模式需要借助中间容器作为换从区,还包括生产者、消费者。下面以蒸馒头为列,写一个demo。 中间容器: 为了防止数据错乱,还需要给生产和消费方法加锁 并且生产者在容器写满的情况下需要等待消费者消费, 同理消费者在容器为空的情况下需要等待生产者生产 //缓冲区 class 阅读全文
posted @ 2020-04-01 22:25 行者老夫 阅读(305) 评论(0) 推荐(0)
摘要: 在java 多线程中 过多的同步造成相互不释放资源 从而相互等待,造成死锁线现象,一般发生于同步中持有多个对象锁 如以下代码: public class DeadLock { public static void main(String[] args) { WuDao wd1 = new WuDao 阅读全文
posted @ 2020-04-01 02:02 行者老夫 阅读(792) 评论(0) 推荐(0)
摘要: 先看一个经典的12306案例: public class SynBlockTest { public static void main(String[] args) { // 一份资源 SynWeb12306 web = new SynWeb12306(); // 多份代理 new Thread(w 阅读全文
posted @ 2020-03-31 22:18 行者老夫 阅读(608) 评论(0) 推荐(0)