我有一个JButton,当玩家点击它时,它会告诉我的Action Listener单击一个按钮.我想知道的是,有一个命令或某些东西就像玩家点击了按钮一样.
就像Tic Tac Toe一样,我有2个玩家可以互相对战,但我想为电脑玩家和人类玩家添加选项.但由于计算机实际上无法点击按钮,我迷路了.
编辑:它会像gridButton2.click()(按钮名称)一样容易.click();
我有一个~6GB的文本文件,我需要解析并稍后保留.通过'解析'我正在从文件中读取一行(通常是2000个字符),从该行创建一个Car-object,然后我坚持下去.
我正在使用生产者消费者模式进行解析和持久化,并想知道它是否会在一次提交中一次持有一个对象或1000次(或任何其他数量)时出现任何差异(出于性能原因)?
目前,我需要花费2小时才能坚持下去(300万行),这对我来说太长时间了(或者我可能错了).
目前我这样做:
public void persistCar(Car car) throws Exception
{
try
{
carDAO.beginTransaction(); //get hibernate session...
//do all save here.
carDAO.commitTransaction(); // commit the session
}catch(Exception e)
{
carDAO.rollback();
e.printStackTrace();
}
finally
{
carDAO.close();
}
}
Run Code Online (Sandbox Code Playgroud)
在我进行任何设计更改之前,我想知道这个设计是否更好(或不是)的原因是什么,如果是,那么cars.size()应该是什么?会议的开放/结束是否被认为是昂贵的?
public void persistCars(List<Car> cars) throws Exception
{
try
{
carDAO.beginTransaction(); //get hibernate session...
for (Car car : cars)
//do all save here.
carDAO.commitTransaction(); // commit the session
}catch(Exception e)
{
carDAO.rollback();
e.printStackTrace();
}
finally
{
carDAO.close();
}
}
Run Code Online (Sandbox Code Playgroud) 在运行下面的代码时,我收到 Python 无法导入 lru_cache 的错误。但是,每次导入(数学等)都会发生这种情况。我已经尝试了我可以在互联网上找到的每一个教程来尝试让这个东西工作。我已经重新安装了 Python。Pip 和自制软件也已安装。
#!usr/bin
from functools import lru_cache
import math
fibonacci_cache = {}
@lru_cache(maxsize = 1000)
def fibonacci(n):
if n == 1:
return 1
elif n == 2:
return 1
elif n > 2:
return fibonacci(n-1) + fibonacci(n-2)
for n in range(1, 501):
print(n, ":", fibonacci(n))
Run Code Online (Sandbox Code Playgroud)
错误:
Kapoyas-MacBook-Pro:bin Keaton$ python python.py
Traceback (most recent call last):
File "python.py", line 2, in <module>
from functools import lru_cache
ImportError: cannot import name lru_cache
Run Code Online (Sandbox Code Playgroud) 所以我模拟了我的生产者消费者问题,我有下面的代码.我的问题是:如果消费者处于不变的状态,消费者将如何停止(真实).
在下面的代码中,我添加了
if (queue.peek()==null)
Thread.currentThread().interrupt();
Run Code Online (Sandbox Code Playgroud)
这个例子很好用.但在我的真实世界设计中,这不起作用(有时生产者需要更长的时间来"放置"数据,因此消费者抛出的异常是不正确的.一般来说,我知道我可以放一个'毒'数据比如Object是XYZ,我可以在消费者中检查它.但这种毒药使代码看起来真的很糟糕.想知道是否有人采用不同的方法.
public class ConsumerThread implements Runnable
{
private BlockingQueue<Integer> queue;
private String name;
private boolean isFirstTimeConsuming = true;
public ConsumerThread(String name, BlockingQueue<Integer> queue)
{
this.queue=queue;
this.name=name;
}
@Override
public void run()
{
try
{
while (true)
{
if (isFirstTimeConsuming)
{
System.out.println(name+" is initilizing...");
Thread.sleep(4000);
isFirstTimeConsuming=false;
}
try{
if (queue.peek()==null)
Thread.currentThread().interrupt();
Integer data = queue.take();
System.out.println(name+" consumed ------->"+data);
Thread.sleep(70);
}catch(InterruptedException ie)
{
System.out.println("InterruptedException!!!!");
break;
}
}
System.out.println("Comsumer " + this.name + " finished its job; terminating."); …Run Code Online (Sandbox Code Playgroud) 我有以下事实和规则:
flight(sea,msp).
flight(msp,jfk).
route(A,B) :- flight(A,B).
route(B,A) :- flight(A,B).
route(A,C) :- flight(A,B) , flight(B,C).
Run Code Online (Sandbox Code Playgroud)
当查询route(sea,jfk)我得到结果true但我希望得到的是解释:
sea-->msp-->jfk 这样我不仅可以告诉它它是真的,而且可以告诉它它是如何真实的。
我有一个正在运行的容器,我希望执行数据库备份。显然,来自 docker 的简单命令,例如:sudo mkdir new_folder导致:bash: sudo: command not found
我尝试了什么(在直观的层面上)我使用docker exec -i -t 434a38fedd69/bin/bashRUN访问了正在运行的容器之一
apt-get update
apt-get install sudo
Run Code Online (Sandbox Code Playgroud)
当退出回到 docker 并尝试执行sudo mkdir new_folder但我收到相同的消息时bash: sudo: command not found
Baresp@adhg MINGW64 /c/Program Files/Docker Toolbox/postgre
$ mkdir new_folder
mkdir: cannot create directory ‘new_folder’: Permission denied
Baresp@adhg MINGW64 /c/Program Files/Docker Toolbox/postgre
$ sudo mkdir new_folder
bash: sudo: command not found
Run Code Online (Sandbox Code Playgroud)
顺便说一句,我不确定这是否相关,但我使用的 docker-compose 文件是:
version: '2'
services:
postgres:
image: postgres
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: changeme
PGDATA: …Run Code Online (Sandbox Code Playgroud) 凭借几年的Java经验,我决定花时间学习C++.我刚刚用eclipse编译和运行我的第一个C++(当然)并希望它采取一步fw - 我希望构建一个GUI.
问题:C++可以使用哪些GUI,这是一个开源的,可以在Mac和eclipse上运行.
我正试图在eclipse中运行一个简单的python程序.这是我第一次导入任何模块.
所以我下载了:numpy和pylab(我正在使用mac)重启我的日食和下面的红线
import numpy
import pylab
Run Code Online (Sandbox Code Playgroud)
消失了所以我明白了对该模块的引用是可以的.
问题是我仍然在代码下面看到红线并想知道为什么?我必须强调,我相信numpy已经'预装'我刚升级版本(使用1.5.1-py2.7).
任何人都可以告诉我该怎么做才能运行此代码?

我在eclipse上的翻译设置:

我正在尝试更改报告的执行并将其以并发方式完成.在'serail模式'中,执行测试需要30秒,当使用并发模式时,我得到27秒(考虑到连续几步必须采取结果).
我仍然没有得到的是这一行:
ExecutorService executor = Executors.newFixedThreadPool(4);
Run Code Online (Sandbox Code Playgroud)
我的计算机装有2x2.6 Ghz四核,如果newFixedThreadPool为高(16),我希望执行时间会减少.实际上,我增加newFixedThreadPool越多,执行速度越慢.这引出了一个问题:我做错了什么或者我没理解什么?!?!
我从我的执行中嵌入了2个结果截图.
A. newSingleThreadExecuter - 在23秒内运行
B. newFixedThreadPool(4) - 在43秒内运行.
每次我提交一个'Worker'我得到system.out currentTimeMillis和'fatched tkt'结果是从db获取数据所需的毫秒数.(在策略A中 - 它需要约3毫秒,而在B中最多需要7毫秒).
Stopper stopper = new Stopper();
for (Long iNum : multimap.asMap().keySet())
{
List<Long> tickets = (List<Long>) multimap.get(iNum);
for (Long ticketNumber : tickets)
{
pojoPks = getPkData(iNum);
Callable<PojoTicket> worker = new MaxCommThread(ticketNumber, pojoPks);
Future<PojoTicket> submit = executor.submit(worker);
futures.add(submit);
}
}
System.out.println("futurues: " +futures.size());
for (Future<PojoTicket> future : futures)
{
try
{
PojoTicket pojoTicket = future.get();
//do the rest here
} …Run Code Online (Sandbox Code Playgroud) java concurrency multithreading callable java.util.concurrent
我有一个文件夹(MY_FILES),有大约500个文件,每天有一个新文件到达,它放在那里.每个文件的大小约为4Mb.
我刚刚开发了一个简单的'void main'来测试我是否可以在这些文件中搜索特定的通配符.它工作得很好.
问题是我正在删除旧的indexed_folder并重新索引.这需要花费很多时间,显然效率低下.我正在寻找的是"增量索引".意思是,如果索引已经存在 - 只需将新文件添加到索引中.
我想知道Lucene是否有某种机制来检查'doc'是否在尝试索引之前被编入索引.像writer.isDocExists这样的东西?
谢谢!
我的代码看起来像这样:
// build the writer
IndexWriter writer;
IndexWriterConfig indexWriter = new IndexWriterConfig(Version.LUCENE_36, analyzer);
writer = new IndexWriter(fsDir, indexWriter);
writer.deleteAll(); //must - otherwise it will return duplicated result
//build the docs and add to writer
File dir = new File(MY_FILES);
File[] files = dir.listFiles();
int counter = 0;
for (File file : files)
{
String path = file.getCanonicalPath();
FileReader reader = new FileReader(file);
Document doc = new Document();
doc.add(new Field("filename", file.getName(), Field.Store.YES, Field.Index.ANALYZED)); …Run Code Online (Sandbox Code Playgroud)