看下面一段代码,这段代码采用了模板设计模式
public abstract class IntGenerator {
private volatile boolean canceled=false;
public abstract int next();
public void cancel()
{ this.canceled=false;
}
public boolean isCanceled()
{
return this.canceled;
}
}
========================
//创建一个偶数生成类
public class EvenGenerator extends IntGenerator{
private int currentEvenValue=0;
@Override
public int next() {
// TODO Auto-generated method stub
++currentEvenValue;
++currentEvenValue;
return currentEvenValue;
}
public static void main(String[] args)
{
EvenChecker.test(new EvenGenerator());
}
}
===========================
创建一个测试类,启动10个线程,查看是否正确的访问资源
public class EvenChecker implements Runnable{
private IntGenerator generator;
private final int id;
public EvenChecker(IntGenerator generator,int id) {
// TODO Auto-generated constructor stub
this.generator=generator;
this.id=id;
}
@Override
public void run() {
// TODO Auto-generated method stub
while(!generator.isCanceled())
{
int val=generator.next();
if(val%2!=0)
{
System.out.println(val+ " is not even!");
generator.cancel();//直到找到奇数时停止
}
else
{
//System.out.println(val+" is even!");
}
}
}
public static void test(IntGenerator gp,int count)
{
System.out.println("Press Ctrl+C to Exit");
ExecutorService exec=Executors.newCachedThreadPool();
for(int i=0;i<count;i++)
exec.execute(new EvenChecker(gp,i));
}
public static void test(IntGenerator gp)
{
test(gp,10);
}
}
//测试的结果是能打印出很多奇数,访问资源出错的原因是:next()方法本身不是原子方法,可能在一个线程对它进行第一个++操作之后,第二个线程已经取到它的值了
分享到:
相关推荐
症状:安装了防火墙(包括WINXP系统自带的防火墙),出现无法Ping通,或者是访问共享资源的时候提示"XXX无法访问"、"您可能没有权限使用网络资源"、"请与这台服务器的管理员联系以查明您是否有访问权限"、"找不到...
在找到了局域网中的所有主机资源以后,就可以通过网络刺客II取得访问共享资源的资格。在左下角的小窗口中选择相应的主机并展开它,在相应的共享资源中右击鼠标按键,或者打开“共享资源”菜单选择相应的选项,将需要...
JSP标签可以访问数据库、记录用户选择信息。 JSP可以直接在HTML网页中动态嵌入元素而不需要单独引用CGI文件。本系统将采用JSP技术,运用HTML和CSS实现各个功能的网页界面,与对应的java程序连接实现各个功能。 (2)...
方便快捷地解决局域网内主机之间访问的权限设置问题,还有一些GHOST系统在正常的访问权限设置不起作用时,资源可以解决这样的问题
在默认状态下,我们之所以能够通过网上邻居窗口访问到目标共享主机中的共享资源,主要是在共享主机中安装启用了“微软文件和打印机共享”功能组件后,Windows系统会自动创建一个默认隐藏共享IPC$,通过这个隐藏共享...
7、通过账户、IP和MAC地址三重绑定来限定客户端的电脑访问共享文件情况,一旦不符合绑定规则,禁止其访问共享文件。 8、限制外来电脑或未经授权的电脑访问共享文件,也即必须加入到许可访问共享文件的白名单电脑...
(原因是:有时xp的guest是不允许访问共享的) (6)取消“使用简单文件共享”方式:资源管理器\工具\文件夹选项\查看\去掉“使用简单文件共享(推 荐)”前面的勾。 (7)工作组名称一致。 (8)勾选“Microsoft网络的...
二、无法访问——“您没有权限使用网络资源,找不到网络路径。” 即提示找不到网络路径,最大的怀疑对象就是Windows防火墙,大多数情况下是它在捣鬼,不妨请对方将计算机的Windows自带的防火墙暂时关闭一下. 三...
这样可以避免多个线程同时访问共享资源而导致数据不一致。 2. 信号量(Semaphore):信号量是一种用于控制并发访问的同步机制,它通常用于限制同时访问共享资源的线程数量。信号量可以是一个非负整数,用于表示可用...
在找到了局域网中的所有主机资源以后,就可以通过网络刺客II取得访问共享资源的资格。在左下角的小窗口中选择相应的主机并展开它,在相应的共享资源中右击鼠标按键,或者打开“共享资源”菜单选择相应的选项,将需要...
Java中使用锁是为了在多线程程序中保证同步访问共享资源的正确性和一致性。在多线程环境下,多个线程可以同时访问共享资源,这可能导致数据的不一致性和错误的结果。例如,如果两个线程同时更新同一个变量,那么可能...
Windows网上邻居互访的基本条件: 1) 双方计算机打开,且设置了网络共享资源; 2) 双方的计算机添加了 "Microsoft 网络文件和打印共享" 服务; 3) 双方都正确设置了网内IP地址,且必须在一个网段中; 4) 双方的...
实现访问远程主机的共享目录中的一个文件的解决方法: 一、调用Net use命令 // 使用方法: //if (Connect(192.168.1.48, 用户名, 密码)) //{ // File.Copy(@\192.168.1.48共享目录 est.txt, @e:\test....
当然你可以自己设置磁盘里 面的任意文件夹为共享文件) 打开资源管理器-右键D盘-共享和安全-左键点选打开 注意:经过上两个图的共享资源设置,偶们进入对方的机子只有"只读"权限,只能看不 能动的哦! 这可是XP...
全网首发,一键共享文件夹,更牛逼的是可以批量设置共享并编辑共享...5. 共享文件后不能正常访问?可能是系统相关策略有影响,一键修改相关策略。这里只设置最常规的一些限制,有需要添加其他功能的,可以评论区反馈。
在找到了局域网中的所有主机资源以后,就可以通过网络刺客II取得访问共享资源的资格。在左下角的小窗口中选择相应的主机并展开它,在相应的共享资源中右击鼠标按键,或者打开“共享资源”菜单选择相应的选项,将需要...
Win7局域网共享一键修复工具用于一键解决局域网文件和打印机共享问题,网上提供的解决方案需要手动设置,且成功经很低,使用本工具可帮助你快速修复共享的问题,然后就可以轻松实现共享访问权限正常,支持查看、...
前言:局域网共享是个头疼的问题,只要找到的正确的设置方法,其实也很简单。原版 也需要设置,否则也不能进行共享! 第一章:共享的前提工作: 1.更改不同的计算机名,设置相同的工作组! 2.我的电脑右键-管理-...
导致Windows XP网络邻居不能正确浏览或浏览列表不全的因素很多,解决问题需要对症下药,而诊断过程分两个步骤:测试基本连接、解决文件共享问题。
C) 防止以不正确的方式使用文件 D) 防止以不正确的方式删除文件 4、( C )是进行资源分配的基本单位。 A) 作业 B) 线程 C) 进程 D) 共享 5、响应比Rp=( B )。 A) 时间等待/要求服务时间 B) 响应时间/要求服务时间...