小编Gre*_*ill的帖子

用Java多线程,如何停止?

我正在为我的作业编写代码,我对编写多线程应用程序并不熟悉.我学会了如何打开一个线程并启动它.我最好显示代码.

 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)

java multithreading http

4
推荐指数
1
解决办法
791
查看次数

内存对齐(具体使用C)

如果你在结构中有一个结构,请说:

struct {
    double a;
    struct {
        char *b[20];
        char c;
    }d;
}e;
Run Code Online (Sandbox Code Playgroud)

将需要从结构d的大小的多个开始,或d(char*b [20])的最大成员的大小的倍数?

c memory struct

4
推荐指数
1
解决办法
147
查看次数

不能设置Mnesia

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 mnesia

4
推荐指数
1
解决办法
4155
查看次数

基本 Erlang - 守卫等中函数调用的替代方案

我正在尝试学习 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)

erlang

4
推荐指数
1
解决办法
466
查看次数

Python如何获取实例的基本实例?

在C#我会去:

myObj.base
Run Code Online (Sandbox Code Playgroud)

我有一个继承自date.datetime的Date类.Date类会覆盖__gt__(),__lt__()因此在使用<>运算符时会调用它们.我不想使用这些覆盖 - 我想在Date实例上使用date.datetime方法.

python python-2.6

4
推荐指数
1
解决办法
4312
查看次数

如何在 16 位 x86 实模式下通过 BIOS 访问 USB 端口?

我是大会世界的新手,

我正在尝试编写一些汇编代码来与串行、并行、VGA、键盘等硬件设备进行通信。

我在 x86 英特尔处理器的实模式下执行此操作,通过从我个人编写的用于加载汇编代码的 boostrap 启动我的代码。

好吧,根据我从阅读教程中收集到的知识,对我来说最简单的方法是使用 BIOS INT 服务程序 (ISR),另一方面,最长的方法是访问硬件的不同寄存器,例如:串口状态寄存器和控制寄存器....

Q1:我说的对吗?

我可以使用 BIOS INT 与 VGA 和串行硬件进行通信,但是我找不到 USB 控制器的任何 BIOS 中断......?!

Q2:你能帮我解决这个问题,让我能够与 USB 端口和其他剩余的端口进行通信,只是让它通用吗?

问题 3:

assembly interrupt bios

4
推荐指数
2
解决办法
6189
查看次数

为国际象棋游戏创建董事会演示文稿

我开始为国际象棋游戏分配制作一个8 x 8方形板.但是,我想知道是否有任何提示创建方块而不是Java中的2D数组.

赋值的一个限制是不允许使用2D数组或任何类似的.没有AI但只有用户控制.

java arrays chess

4
推荐指数
1
解决办法
1555
查看次数

如何返回具有不同值的列表?

如果我有以下列表:

(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)

recursion scheme racket

4
推荐指数
1
解决办法
320
查看次数

如何使用可可进度条?

我是一个全新的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)

xcode objective-c progress-bar

4
推荐指数
1
解决办法
8766
查看次数

递归并返回Scheme中的列表

我无法绕过一种使用递归来创建列表然后返回基本情况列表的方法.具体来说,我将两个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)

recursion scheme list

4
推荐指数
1
解决办法
7358
查看次数