今天有人在采访中问我有关Java线程概念的问题吗?问题是…
除了Thread的定义之外,我没有回答任何问题,我也是从互联网中学到的。
谁能对此清楚地解释我。
更新 :
线程和普通的Java类之间有什么区别。为什么我们需要线程…我可以在线程中执行业务逻辑吗?我可以在线程中调用不同的类方法吗?
要创建线程,请创建一个扩展Thread
该类的新类,然后实例化该类。扩展类必须重写该run
方法并调用该start
方法以开始执行线程。
在内部run
,您将定义构成新线程的代码。重要的是要理解run
可以像主线程一样调用其他方法,使用其他类并声明变量。唯一的区别是run
为程序内的另一个并发执行线程建立入口点。这将在run
返回时结束。
这是一个例子:
public class MyThread extends Thread {
private final String name;
public MyThread(String name) {
this.name = name;
}
public void run() {
try {
for (; ; ) {
System.out.println(name);
Thread.sleep(1000);
}
} catch (InterruptedException e) {
System.out.println("sleep interrupted");
}
}
public static void main(String[] args) {
Thread t1 = new MyThread("First Thread");
Thread t2 = new MyThread("Second Thread");
t1.start();
t2.start();
}
}
您将在屏幕上看到以下内容:
First Thread
Second Thread
First Thread
Second Thread
First Thread
本教程还介绍了Runnable
界面。使用Spring,您可以使用线程池。
我现在正在使用SwingWorker,我遇到了一点问题,我意识到不可能从http://docs.oracle.com/javase/tutorial/uiswing/concurrency/worker.html.多次执行SwingWorker线程 我的问题是,是否可以创建同一SwingWorker线程的新实例?在这里的代码中,我将工作线程称为“worker” 是否可以创建此线程的多个实例,以便我
我找到了关于线程安全的代码,但它没有来自给出示例的人的任何解释。我想知道为什么如果我不在“count”之前设置“synchronized”变量,那么count值将是非原子的(总是=200是期望的结果)。谢谢
问题内容: 我正在编写一段连接到服务器的代码,使用该连接会生成一堆线程并执行一堆“工作”。 在某些情况下,连接失败,我需要停止所有操作并从头开始创建新对象。 我想在对象之后进行清理,但在线程上调用thread.stop,但是此方法似乎已被弃用。 推荐的替代方法是什么?是否应该为每个线程编写自己的清理和退出方法?将线程设置为null?或者是其他东西? 问题答案: 看这里 : 在HowToStopAT
以下是上述应用程序的代码(包括2个类:Main和ClockPanel) 问题是:如果我删除该行(正如我在上面的代码中所评论的那样),时钟将不会运行。我完全不知道为什么会这样。有人能给我解释一下吗?是因为系统。出来println()影响正在运行的线程或其他什么?
我有一个关于JAVA多线程的问题。 我有一个jetty webapp与grpc-流式传输-客户端。一切都很好,但我如何建立一个模型来获取流式传输数据? webapp是用jsf构建的。因为我有一个控制器,它调用一个处理程序类来启动流: 此方法简单地启动客户端和流。 检查倒计时锁存器的实现仍然缺失。但在这种情况下,这并不重要。 响应如下:onNext()-方法提供流式数据: 图像数据简单地打印在屏幕上