路漫漫,水迢迢

八十一难拦路七十二变制敌

排序:
默认
按更新时间
按访问量

java定时器之Timer使用与原理分析

Timer和TimerTask Timer是jdk中提供的一个定时器工具,使用的时候会在主线程之外起一个单独的线程执行指定的计划任务,可以指定执行一次或者反复执行多次。 TimerTask是一个实现了Runnable接口的抽象类,代表一个可以被Timer执行的任务。 【使用举例】 【sch...

2018-11-07 16:10:15

阅读数:31

评论数:1

synchronized的底层优化

Synchronized底层是通过对象内部的一个叫做监视器锁(monitor)来实现的。但是监视器锁本质又是依赖于底层的操作系统的Mutex Lock来实现的。而操作系统实现线程之间的切换这就需要从用户态转换到核心态,这个成本非常高,状态之间的转换需要相对比较长的时间,这就是为什么Synchron...

2018-11-06 23:25:27

阅读数:704

评论数:0

ReentrantLock原理

ReentrantLock主要利用CAS+AQS队列来实现。它支持公平锁和非公平锁,两者的实现类似。 CAS:Compare and Swap,比较并交换。CAS有3个操作数:内存值V、预期值A、要修改的新值B。当且仅当预期值A和内存值V相同时,将内存值V修改为B,否则什么都不做。该操作是一个原...

2018-11-04 20:18:23

阅读数:39

评论数:1

线程间的通信wait与notify

wait()方法 wait()方法使得当前线程必须要等待,等到另外一个线程调用notify()或者notifyAll()方法。 当前的线程必须拥有当前对象的monitor,也即lock,就是锁。 线程调用wait()方法,释放它对锁的拥有权,然后等待另外的线程来通知它(通知的方式是notif...

2018-10-31 22:48:09

阅读数:536

评论数:0

Java中的自旋锁

自旋锁(spinlock):是指当一个线程在获取锁的时候,如果锁已经被其它线程获取,那么该线程将循环等待,然后不断的判断锁是否能够被成功获取,直到获取到锁才会退出循环。  获取锁的线程一直处于活跃状态,但是并没有执行任何有效的任务,使用这种锁会造成busy-waiting。 Java如何实现自...

2018-10-25 22:20:41

阅读数:209

评论数:1

10、销售月饼的最大利润

题目描述 月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需 求量,请你计算可以获得的最大收益是多少。 注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有3种月饼,其库存量分别为18、15、10万吨...

2018-09-06 22:53:07

阅读数:59

评论数:0

9、数字黑洞

题目描述 给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到 一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的6174,这个神奇的数字也叫Kaprekar常数。 例如,我们从6767开始,将得...

2018-08-28 22:16:06

阅读数:52

评论数:0

8、锤子剪刀布

题目描述 大家应该都会玩“锤子剪刀布”的游戏: 现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。 输入描述: 输入第1行给出正整数N(<=105),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的...

2018-08-22 22:11:34

阅读数:53

评论数:0

7、A除以B

题目描述 本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。 输入描述: 输入在1行中依次给出A和B,中间以1空格分隔。 输出描述: 在1行中依次输出Q和R,中间以1空格分隔。 输入例子: ...

2018-08-20 22:01:15

阅读数:61

评论数:0

6、部分A+B

题目描述 正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。 现给定A、DA、B、DB,请编写程序计算PA + PB。   输入描述: 输入在一行中依次给出A、D...

2018-08-19 18:02:33

阅读数:49

评论数:0

5、德才论

题目描述 宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之 小人。凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人。” 现给出一批考生的德才分数,请根据司马光的理论给出录取排名。 输入描述: 输...

2018-08-19 12:36:17

阅读数:54

评论数:0

4、福尔摩斯的约会

题目描述 大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大侦探很 快就明白了,字条上奇怪的乱码实际上就是约会的时间“星期四 14...

2018-08-18 17:10:45

阅读数:112

评论数:0

3、数素数

题目描述 令Pi表示第i个素数。现任给两个正整数M <= N <= 10000,请输出PM到PN的所有素数。 输入描述: 输入在一行中给出M和N,其间以空格分隔。 输出描述: 输出从PM到PN的所有素数,每10个数字占1行,其间以空格...

2018-08-18 17:07:38

阅读数:39

评论数:0

2、数字分类

题目描述 给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字: A1 = 能被5整除的数字中所有偶数的和; A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4…; A3 = 被5除后余2的数字的个数; A4 = 被5除后余3的数字的平均数,精确到...

2018-08-18 17:05:09

阅读数:44

评论数:0

1、A+B和C

题目描述 给定区间[-2的31次方, 2的31次方]内的3个整数A、B和C,请判断A+B是否大于C。 输入描述: 输入第1行给出正整数T(<=10),是测试用例的个数。随后给出T组测试用例,每组占一行,顺序给出A、B和C。整数间以空格分隔。 输出描述:...

2018-08-18 16:59:41

阅读数:36

评论数:0

volatile的原理和使用场景

上下文切换 CPU为每个线程分配时间片(几十ms),CPU不断切换线程执行,切换的时候会记录状态,保证能够从原来的状态继续执行。当然上下文切换是有开销的,当线程执行时间非常短时我们用并发可能会耗时更久。使用【Lmbench3】和【vmstat】可以测量上下文切换的时间和次数。 为了降低开销我们...

2018-07-11 22:08:42

阅读数:116

评论数:0

高并发下一些常用的限流和防刷方法

限流与防刷 互联网项目与传统项目不同的互联网项目是暴露在互联网中,面向的是全体网民,这时候可能出现以下两种访问形式需要我们采取一些必要措施对我们的服务进行保护。 1、大量正常用户高频访问导致服务器宕机 2、恶意用户高频访问导致服务器宕机 3、网页爬虫 对于这些情况我们需要对用户的访问进行...

2018-04-23 21:49:15

阅读数:1746

评论数:0

Nginx.conf配置说明

#使用的用户和组 user www www; #指定工作衍生进程数(一般等于CPU的总核数或总核数两倍) worker_processes 1; #错误日志的存放目录,日志级别有dubug,info,notice,warn,error,crit error_log logs/error.lo...

2017-10-26 11:44:40

阅读数:432

评论数:0

Centos6.5安装Nginx

Nginx是一款高性能反向代理软件,现在应用极其广泛,软件负载均衡一般有Nginx和LVS两种方式,其中Nginx更为流行,因为它安装配置简单易于维护,还能缓存一些静态资源。 首先安装依赖库 1、安装g++yum install gcc gcc-c++提示 Another app is cu...

2017-10-17 17:19:09

阅读数:391

评论数:0

Netty学习笔记(一)

IO分为同步阻塞BIO、同步非阻塞NIO、异步非阻塞AIO1、BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待4请求,而客户端发送请...

2017-09-16 15:53:47

阅读数:424

评论数:0

提示
确定要删除当前文章?
取消 删除