Loading

上一页 1 2 3 4 5 6 7 8 ··· 16 下一页
摘要: Socket编程 BIO网络编程 BIO Server package com.study.hc.net.bio; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; impor 阅读全文
posted @ 2021-03-21 22:12 kopoo 阅读(96) 评论(0) 推荐(0) 编辑
摘要: 8. 共享模型之工具 8.1 线程池 池化技术相比大家已经屡见不鲜了,线程池、数据库连接池、Http 连接池等等都是对这个思想的应用。池化技术的思想主要是为了减少每次获取资源的消耗,提高对资源的利用率。 线程池提供了一种限制和管理资源(包括执行一个任务)。 每个线程池还维护一些基本统计信息,例如已完 阅读全文
posted @ 2021-01-29 18:38 kopoo 阅读(78) 评论(0) 推荐(0) 编辑
摘要: 7.1 日期转换的问题 如果一个对象在不能够修改其内部状态(属性),那么它就是线程安全的,因为不存在并发修改啊!这样的对象在 Java 中有很多,例如在 Java 8 后,提供了一个新的日期格式化类DateTimeFormatter 可变类内部成员变量是可以改变的就容易出现线程不安全问题‘ 可以用锁 阅读全文
posted @ 2021-01-29 17:26 kopoo 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 管程即monitor是阻塞式的悲观锁实现并发控制,这章我们将通过非阻塞式的乐观锁的来实现并发控制 本章内容 CAS 与 volatile原子整数原子引用原子累加器Unsafe 6.1 问题提出 有如下需求,保证account.withdraw取款方法的线程安全 package cn.itcast.t 阅读全文
posted @ 2021-01-14 20:57 kopoo 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 5. 共享模型之内存 上一章讲解的 Monitor 主要关注的是访问共享变量时,保证临界区代码的原子性。这一章我们进一步深入学习共享变量在多线程间的【可见性】问题与多条指令执行时的【有序性】问题 5.1 Java 内存模型 JMM 即 Java Memory Model,它从java层面定义了主存、 阅读全文
posted @ 2021-01-11 21:49 kopoo 阅读(58) 评论(0) 推荐(0) 编辑
摘要: 4.13 ReentrantLock 相对于 synchronized 它具备如下特点 可中断可以设置超时时间可以设置为公平锁支持多个条件变量,即对与不满足条件的线程可以放到不同的集合中等待 与 synchronized 一样,都支持可重入 基本语法 // 获取锁 reentrantLock.loc 阅读全文
posted @ 2021-01-05 11:28 kopoo 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 剑指 Offer 03. 数组中重复的数字 题目描述 在一个长度为 n 的数组里的所有数字都在 0 到 n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 Input: {2, 3, 1, 0, 2, 5} Output: 阅读全文
posted @ 2020-12-19 21:13 kopoo 阅读(91) 评论(0) 推荐(0) 编辑
摘要: https://www.cnblogs.com/findbetterme/p/10787118.html 看这个就完事了 1. 统计两个数的二进制表示有多少位不同 461. Hamming Distance (Easy) Leetcode / 力扣 Input: x = 1, y = 4 Outpu 阅读全文
posted @ 2020-12-09 17:24 kopoo 阅读(51) 评论(0) 推荐(0) 编辑
摘要: 1. 把数组中的 0 移到末尾 283. Move Zeroes (Easy) Leetcode / 力扣 class Solution { public void moveZeroes(int[] nums) { int id=0; for(int num:nums){ if(num!=0)num 阅读全文
posted @ 2020-12-05 22:13 kopoo 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 204. 计数质数 难度简单523 统计所有小于非负整数 n 的质数的数量。 class Solution { public int countPrimes(int n) { boolean[] isPrim = new boolean[n]; Arrays.fill(isPrim, true); 阅读全文
posted @ 2020-12-03 11:02 kopoo 阅读(33) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 ··· 16 下一页