`
文章列表
对于IO这种资源无法通过interrupt()方法中断,但是在实际应用中想中断的话,可以尝试关闭任务在其上发生中断的底层资源。 ================= public class IOBlocked implements Runnable{ private InputStream is; public IOBlocked(InputStream is) { this.is=is; } @Override public void run() { // TODO Auto-generated method stub System. ...
线程类的interrupt()方法可对某一线程进行中断,例子如下: public class SleepBlocked implements Runnable{ @Override public void run() { // TODO Auto-generated method stub try { TimeUnit.SECONDS.sleep(100); } catch (InterruptedException e) { // TODO Auto-generated catch block System.out.println(& ...
JAVA提供了AtomicInteger,AtomicLong,AtomicReference等原子类,这些原子类有一些方法是原子方法,实例如下: public class AtomicIntegerTest implements Runnable{ private AtomicInteger i=new AtomicInteger(0); public int getValue() { return i.get();//这是原子方法 } public void evenIncrement() { i.addAndGet(2) ...
场景: 公园的管理人员希望知道每天通过多个大门进入公园的总人数,这样为每个门设置一个计数器,总人数也就是各个计数器的和,代码如下所示: 计数器类 public class Count { private int count=0; private Random rand=new Random(47 ...
    1.某公司准备购买一设备,买价2000万。可用10年。若租用则每年年初付租金250万,除外,买与租的其他情 况相同。复利年利率10%,要求说明买与租何者为优。P=A×PVI**i,n-1 +A=250×PVI**10%,9+250=1689.75<2000 所以,租为优。   2.某企业现存入银行30000元,准备在3年后购买一台价值为40000元的设备,若复利12%,问此方案是否可行。   F=P×FVIFi,n=30000×FVIF12%,3=42150 >40000 所以,可行。   3.若要使复利终值经2年后成为现在价值的16倍,在每半年计算一次利息的情况下,其 ...
看下面一段代码,这段代码采用了模板设计模式 public abstract class IntGenerator { private volatile boolean canceled=false; public abstract int next(); public void cancel() { this.cancel ...
Runnable接口不返回任何值,如果希望任务完成时能返回一个值,可以实现Callable接口。    1.Callable是一个类型参数的接口,类型参数表示从方法call()中的返回值。    2.运行时必须使用ExecutorService.submit去调用它,例子如下: public class TaskWithResults implements Callable<String>{ private int id; public TaskWithResults(int id) { // TODO Auto-generated constructor stub ...
Lock对象在使用的时候必须被显示地创建、锁定和释放。它和synchronized关键字的作用类似,举一个例子如下: ======================整数生成类 public abstract class IntGenerator { private volatile boolean canceled=false; public abstract int next(); public void cancel() {   this.canceled=false; } public boolean isCanceled() { return this.c ...
后台线程是程序在运行的时候在后台提供一种通用服务的线程,当所有的非后台线程结束时,程序也就终止,同时会杀死所有的后台线程。下面的例子很好的说明这一点: public class SimpleDaemons implements Runnable{ @Override public void run() { // TODO Auto-generated method stub while(true) { try { TimeUnit.MILLISECONDS.sleep(100); System.out.println(Thread. ...
concurrent包里面的CountDownLatch其实可以把它看作一个计数器,只不过这个计数器的操作是原子操作,同时只能有一个线程去操作这个计数器,也就是同时只能有一个线程去减这个计数器里面的值。 CountDownLatch的一个非常典型的应用场景是:有一个任务想要往下执行,但必须要等到其他的任务执行完毕后才可以继续往下执行。假如我们这个想要继续往下执行的任务调用一个CountDownLatch对象的await()方法,其他的任务执行完自己的任务后调用同一个CountDownLatch对象上的countDown()方法,这个调用await()方法的任务将一直阻塞等待,直到这个CountD ...
今天下载了开源的ERP+CRM软件,部署过程有几点心得,说一下: 1.下载完软件,运行ant 之后报错,这时把build.xml文件中报错的行failonerror="true"去掉 2.重新执行ant run-install,这时会报找不到字符集utf-8和collation 查看我的数据库的show character set和show collation,按照我本地数据库上的 重新修改配置文件上的 3.这时编译成功,启动脚本之后,输入http://localhost:8080/opentaps 之后,出现java.util.regex.PatternSyntaxExc ...
从事Java方面的编程差不多有3年的经验了,最近想学一下 并发、分布式缓存、集群等等的东西 不知道从哪儿入手 ,因为本身开发的项目技术点有限,没有涉及到这方面的。大家说说如何入手阿?
Global site tag (gtag.js) - Google Analytics