我想写一个返回a的异步方法CompletableFuture
.未来的唯一目的是跟踪方法何时完成,而不是结果.返回CompletableFuture<Void>
还是更好CompletableFuture<?>
?有理由偏爱其中一个,还是可以互换?
CompletableFuture
本身CompletableFuture<Void>
从它的许多方法返回.java.nio
有一个Future<Void>
在AsynchronousSocketChannel
:Future<Void> connect(SocketAddress remote)
.java.util.concurrent
类ExecutorService
和ScheduledExecutorService
返回Future<?>
:例如,with Future<?> submit(Runnable task)
.请注意,我只询问返回类型,而不是参数列表,变量声明或其他上下文.
在使用树集时,我发现了非常奇特的行为.根据我的理解,这个程序应该打印两个相同的行:
public class TestSet {
static void test(String... args) {
Set<String> s = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER);
s.addAll(Arrays.asList("a", "b"));
s.removeAll(Arrays.asList(args));
System.out.println(s);
}
public static void main(String[] args) {
test("A");
test("A", "C");
}
}
Run Code Online (Sandbox Code Playgroud)
但奇怪的是它打印:
[b]
[a, b]
Run Code Online (Sandbox Code Playgroud)
为什么树集会表现得像这样?
假设,为了便于说明,您使用包含三列的简单MySQL"books"表运行库:
(身份,职称,身份)
报告每个州有多少本书的简单查询是:
SELECT status, COUNT(*) FROM books GROUP BY status
Run Code Online (Sandbox Code Playgroud)
或者专门找到有多少本书:
SELECT COUNT(*) FROM books WHERE status = "AVAILABLE"
Run Code Online (Sandbox Code Playgroud)
但是,一旦表增长到数百万行,这些查询需要几秒钟才能完成.在"状态"列中添加索引似乎不会对我的体验产生影响.
除了定期缓存结果或在每次书籍更改状态(通过触发器或其他机制)时在单独的表中显式更新摘要信息,是否有任何加速这些类型查询的技术?似乎COUNT查询最终查看每一行,并且(不知道更多细节)我有点惊讶,这些信息无法以某种方式从索引中确定.
UPDATE
使用具有200万行的样本表(带有索引"状态"列),我对GROUP BY查询进行了基准测试.使用InnoDB存储引擎,查询在我的机器上需要3.0 - 3.2秒.使用MyISAM,查询需要0.9 - 1.1秒.在任何一种情况下,计数(*),计数(状态)或计数(1)之间没有显着差异.
MyISAM无疑要快一点,但我很想知道是否有办法让等效查询运行得更快(例如10-50毫秒 - 足够快,可以在低流量站点的每个网页请求上调用)没有缓存和触发器的精神开销.听起来答案是"没有办法快速运行直接查询"这是我的预期 - 我只是想确保我没有错过一个简单的替代方案.
我有一个分配给变量的数字,如:
var myVar = 1234;
Run Code Online (Sandbox Code Playgroud)
现在我想从该数字得到第二个数字(在这种情况下为2),而不是先将其转换为字符串.那可能吗?
我是编程的初学者,我正在寻找如何生成满足条件的三个整数的好主意。
例子:
给定n = 30
,我们被要求生成三个整数 a、b 和 c,因此7*a + 5*b + 3*c = n
。我尝试使用for
循环,但它花费了太多时间,而且我的最大测试时间为 1000 毫秒。
我正在使用 Python 3。
我的尝试:
x = int(input())
c = []
k = []
w = []
for i in range(x):
for j in range(x):
for h in range(x):
if 7*i + 5*j + 3*h = x:
c.append(i)
k.append(j)
w.append(h)
if len(c) == len(k) == len(w)
print(-1)
else:
print(str(k[0]) + ' ' + str(c[0]) + ' ' + str(w[0]))
Run Code Online (Sandbox Code Playgroud) 我在这个声明中得到"Bad Compile constant value".
Regex objCheckNumber = new Regex("^(\d){4}$");
Run Code Online (Sandbox Code Playgroud)
我只想将其设置为检查另一个字符串,以查看输入的值是否为4位数.
在html中,你可以做这样的事情
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent eget
aliquet odio. Fusce id quam eu augue sollicitudin imperdiet eu ac eros.
<em>Etiam nec nisi lorem</em>, ac venenatis ipsum. In sollicitudin,
lectus eget varius tincidunt, felis sapien porta eros, non
pellentesque dui quam vitae tellus.
</p>
Run Code Online (Sandbox Code Playgroud)
这很好,因为文本段落看起来仍然像标记中的段落.在haml中,它看起来像这样
%p Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent eget aliquet odio. Fusce id quam eu augue sollicitudin imperdiet eu ac eros. %em Etiam nec nisi lorem , ac venenatis …
尝试运行一段python代码时出现以下错误:
import: unable to open X server `' @ error/import.c/ImportImageCommand/366.
from: can't read /var/mail/datetime
./mixcloud.py: line 3: syntax error near unexpected token `('
./mixcloud.py: line 3: `now = datetime.now()'
Run Code Online (Sandbox Code Playgroud)
代码:
import requests
from datetime import datetime,date,timedelta
now = datetime.now()
Run Code Online (Sandbox Code Playgroud)
我真的没有看到问题.这是我的服务器出现问题而不是代码本身的问题吗?
java ×2
python ×2
awk ×1
c# ×1
count ×1
future ×1
haml ×1
indexing ×1
javascript ×1
mysql ×1
numbers ×1
optimization ×1
php ×1
python-3.x ×1
random ×1
return-type ×1
shell ×1
treeset ×1