摘要:
第一题:现有的程序代码模拟产生了16个日志对象,并且需要运行16秒才能打印完这些日志,请在程序中增加4个线程去调用parseLog()方法来分头打印这16个日志对象,程序只需要运行4秒即可打印完这些日志对象。原始代码如下: 实现的代码: 第二题:现成程序中的Test类中的代码在不断地产生数据,然后交 阅读全文
摘要:
CyclicBarrier 的字面意思是可循环使用(Cyclic)的屏障(Barrier)。它要做的事情是,让一组线程到达一个屏障(也可以叫同步点)时被阻塞,直到最后一个线程到达屏障时,屏障才会开门,所有被屏障拦截的线程才会继续干活。CyclicBarrier默认的构造方法是 CyclicBarri 阅读全文
摘要:
Lock,那是对synchronized的一种更为面向对象的替代,在原来的synchronized内部,我们可以调用object的wait与notify方法 condition一方面是对lock功能的补充(也就是说,你用了lock,为了保证线程的通信,就得用condition) 另一方面,synch 阅读全文
摘要:
CompletionService用于提交一组Callable任务,其take方法返回已完成的一个Callable任务对应的Future对象。 如果你向Executor提交了一个批处理任务,并且希望在它们完成后获得结果。为此你可以将每个任务的Future保存进一个集合,然后循环这个集合调用Futur 阅读全文
摘要:
Future就是对于具体的Runnable或者Callable任务的执行结果进行取消、查询是否完成、获取结果。必要时可以通过get方法获取执行结果,该方法会阻塞直到任务返回结果。 Future类位于java.util.concurrent包下,它是一个接口: cancel方法用来取消任务,如果取消任 阅读全文
摘要:
我们创建一个可扩展大小的线程池,并且需要在线程池内同时让有限数目的线程并发运行时,就需要用到Semaphore(信号灯机制),Semaphore 通常用于限制可以访问某些资源(物理或逻辑的)的线程数目,它是一个计数信号量,从概念上讲,信号量维护了一个许可集合,如有必要,在许可可用前会阻塞每一个acq 阅读全文
摘要:
select * from dual order by age desc nulls last select * from test order by age asc nulls first sqlserver 认为 null 最小。 升序排列:null 值默认排在最前。 要想排后面,则:order 阅读全文
摘要:
function arrayAdd(number, addNumber) { var numberArr = number.toString().split(''); var addNumberArr = addNumber.toString().split(''); var temporary = []; //临时值 //... 阅读全文
摘要:
1NF:字段不可分; 2NF:有主键,非主键字段依赖主键; 3NF:非主键字段不能相互依赖; 解释: 1NF:原子性 字段不可再分,否则就不是关系数据库; 2NF:唯一性 一个表只说明一个事物; 3NF:每列都与主键有直接关系,不存在传递依赖; 不符合第一范式的例子(关系数据库中create不出这样... 阅读全文
摘要:
Func fc=(int x,int y)=>x*y;Console.WriteLine(fc(5, 2));//声明一个方法,返回值为int,参数是两个int。功能是计算两个整数的乘积。 IList list = Enumerable.Range(1, 100).ToList(); Func my... 阅读全文