我需要在不使用Thread.sleep()或while循环的情况下添加延迟.游戏即时编辑(Minecraft)时钟在"Ticks"上运行,但它们可能会根据您的FPS而波动.
public void onTick() {//Called every "Tick"
if(variable){ //If my variable is true
boolean = true; //Setting my boolean to true
/**
*Doing a bunch of things.
**/
//I need a delay for about one second here.
boolean = false; //Setting my boolean to false;
}
}
Run Code Online (Sandbox Code Playgroud)
我需要延迟的原因是因为如果我没有一个代码运行得太快而错过了它并且没有切换.
我试图以彩虹顺序遍历所有rgb颜色.目前我有这个:
int state = 1;
int a = 255;
int r = 255;
int g = 0;
int b = 0;
if(g < 255 && state == 1){
g++;
r--;
if(g == 255)
state = 2;
}
if(b < 255 && state == 2){
b++;
g--;
if(b == 255)
state = 3;
}
if(state == 3){
r++;
b--;
if(b == 0)
state = 1;
}
int hex = (a << 24) + (r << 16) + (g << 8) + …Run Code Online (Sandbox Code Playgroud) 所以我有这些长整数,5488461193L 和 5545007984L,我需要能够将它们转换成这样的内存地址,0x143EE69B0。我知道它们是内存地址,因为它们最初是内存地址,但我只得到了它们的长版本。抱歉,如果有点难以理解。
我正在制作一个代理检查器,我已经制作了一个前一个并且它是多线程的,但它为每个代理创建了一个新线程来检查,这就是我用这个做的,但当我去用它检查60k代理时它几乎融化了我的电脑哈哈.我试图限制一次运行的线程数量,但没有运气.我最初这样做的方式是这样的
for(int i = 0; i < proxies.size(); i++){
final String s = proxies.get(i);
new Thread(){
public void run(){
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(s.split(":")[0], Integer.parseInt(s.split(":")[1])));
if(checkProxy(proxy, 5000))
textArea_1.setText(textArea_1.getText() + s + "\n");
progress++;
progressBar.setValue(progress);
}
}.start();
}
Run Code Online (Sandbox Code Playgroud)
我试图限制的方式是通过为每个新线程增加一个全局变量,然后在每个新线程结束时使用它自己认为循环会暂停并等待变量足够低以创建一个新线程,如此
for(int i = 0; i < proxies.size() && runningThreads <= 5; i++){
runningThreads++;
final String s = proxies.get(i);
new Thread(){
public void run(){
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(s.split(":")[0], Integer.parseInt(s.split(":")[1])));
if(checkProxy(proxy, 5000))
textArea_1.setText(textArea_1.getText() + s + "\n");
progress++;
progressBar.setValue(progress); …Run Code Online (Sandbox Code Playgroud)