我正在为我的作业编写代码,我对编写多线程应用程序并不熟悉.我学会了如何打开一个线程并启动它.我最好显示代码.
for (int i = 0; i < a.length; i++) {
download(host, port, a[i]);
scan.next();
}
Run Code Online (Sandbox Code Playgroud)
我上面的代码连接到服务器打开a.length多个并行请求.换句话说,下载打开a[i]连接以在每次迭代时获得相同的内容.但是,当下载已打开的线程完成时,我希望我的服务器在i = 0启动下一次迭代i = 1时完成下载方法.我使用scan.next()来手动停止它,但显然它不是一个很好的解决方案.我怎样才能做到这一点?
编辑:
public static long download(String host, int port) {
new java.io.File("Folder_" + N).mkdir();
N--;
int totalLength = length(host, port);
long result = 0;
ArrayList<HTTPThread> list = new ArrayList<HTTPThread>();
for (int i = 0; i < totalLength; i = i + N + 1) {
HTTPThread t;
if (i + N > …Run Code Online (Sandbox Code Playgroud) 如果你在结构中有一个结构,请说:
struct {
double a;
struct {
char *b[20];
char c;
}d;
}e;
Run Code Online (Sandbox Code Playgroud)
将需要从结构d的大小的多个开始,或d(char*b [20])的最大成员的大小的倍数?
setup_mnesia(Name) ->
?VALUE(application:start(mnesia)),
?VALUE(mnesia:create_schema([node()|[Name]])),
?VALUE(mnesia:create_table(muppet, [
{attributes, record_info(fields, muppet)},
{disc_copies, [foo@kos13]}])),
?VALUE(mnesia:wait_for_tables([muppet], infinity)),
ok.
Run Code Online (Sandbox Code Playgroud)
结果是
"application:start(mnesia)"= ok
"mnesia:create_schema([node()| [Name]])"= {error,{foo @ kos13,{already_exists,foo @ kos13}}}
"mnesia:create_table(muppet,[{attributes,record_info(fields,muppet)},{disc_copies,[foo @ kos13]}])"= {aborted,{bad_type,muppet,disc_copies,foo @ kos13}}
EDITED,ADDED如果重写两个进程来调用应用程序:在mnesia之后启动:create_schema它吐出"无法安装回退".在当前目录中出现两个文件--FALLBACK.BUP和foo @ kos13131851070846165246847780.
我正在尝试学习 Erlang,来自 C++/Java 背景。这迫使我重新思考我所有的方法。
现在我正在尝试编写一些返回列表的前 N 个元素的东西。现在看起来像这样,虽然我不能在守卫或 if 表达式中调用函数。这样做的 Erlang 方式是什么?
take([Xh|Xr],N,Xn) ->
if
len(Xn) /= N -> take(Xr,N,app(Xh, Xn));
len(Xn) == N -> Xn
end.
Run Code Online (Sandbox Code Playgroud)
我之前也尝试过调用该函数,但这也不起作用:
take([Xh|Xr],N,Xn) ->
G = len(Xn);
if
G /= N -> take(Xr,N,app(Xh, Xn));
G == N -> Xn
end.
Run Code Online (Sandbox Code Playgroud) 在C#我会去:
myObj.base
Run Code Online (Sandbox Code Playgroud)
我有一个继承自date.datetime的Date类.Date类会覆盖__gt__(),__lt__()因此在使用<和>运算符时会调用它们.我不想使用这些覆盖 - 我想在Date实例上使用date.datetime方法.
我是大会世界的新手,
我正在尝试编写一些汇编代码来与串行、并行、VGA、键盘等硬件设备进行通信。
我在 x86 英特尔处理器的实模式下执行此操作,通过从我个人编写的用于加载汇编代码的 boostrap 启动我的代码。
好吧,根据我从阅读教程中收集到的知识,对我来说最简单的方法是使用 BIOS INT 服务程序 (ISR),另一方面,最长的方法是访问硬件的不同寄存器,例如:串口状态寄存器和控制寄存器....
Q1:我说的对吗?
我可以使用 BIOS INT 与 VGA 和串行硬件进行通信,但是我找不到 USB 控制器的任何 BIOS 中断......?!
Q2:你能帮我解决这个问题,让我能够与 USB 端口和其他剩余的端口进行通信,只是让它通用吗?
问题 3:
我开始为国际象棋游戏分配制作一个8 x 8方形板.但是,我想知道是否有任何提示创建方块而不是Java中的2D数组.
赋值的一个限制是不允许使用2D数组或任何类似的.没有AI但只有用户控制.
如果我有以下列表:
(define thelist '(0 1 0 0 7 7 7))
Run Code Online (Sandbox Code Playgroud)
如何编写一个返回新列表的函数,在该列表中替换所请求单元格中的值.
例:
(set-cell thelist 2 4)
Run Code Online (Sandbox Code Playgroud)
这将返回具有相同值的新列表,但在单元格(2)中将存在值4而不是1:
(0 4 0 0 7 7 7)
Run Code Online (Sandbox Code Playgroud) 我是一个全新的Mac程序员,我需要有关如何使用的帮助NSProgressIndicator.我已经查找了示例代码,但找不到任何有用的东西.
我想要做的是:
-(IBAction)startProgressBar:(id)sender; {
//I want to make the bar update itself by the value of 1 until it is at the value of 100
//Example: add 1 to bar every second until it is full
}
Run Code Online (Sandbox Code Playgroud) 我无法绕过一种使用递归来创建列表然后返回基本情况列表的方法.具体来说,我将两个32位数字(x1和x2)输入ALU并逐位(通过ALU1)进行评估,然后创建结果数字的列表.这个递归算法的基本情况是(null?x1),但此时,如何访问结果列表?我知道方案中的列表是不可变的,所以我不能只创建一个空列表并将结果列表附加到它.有帮助吗?这是我第一次参加功能编程,所以提前感谢.
(define ALU-helper
(lambda (selection sub x1 x2 carry-in n)
(if (null? x1)
(________?)
(cons
(ALU1 selection sub (car x1) (car x2) carry-in n)
(ALU-helper selection sub (cdr x1) (cdr x2) carry-in (- n 1))))))
Run Code Online (Sandbox Code Playgroud)