我需要了解一些关于线程的事情。我正在用Java编写一个小型爬虫,我将从一个URL开始,将传出的URL添加到数据库并抓取下一个(不是多线程的)。
我的项目最终必须是多线程的。
我有些疑惑。使用线程时,我们对函数使用锁定,这样只有一个线程应该使用该函数。那么多线程仍然有用吗?
答案 0 :(得分:2)
线程非常有用,特别是如果您的进程真正可并行化并且您可以使用多个核心。
如果您只有一个CPU,则操作系统会对线程进行时间分片。因此,如果您有许多本质相似的任务,您可能会发现同时启动它们不会导致显着的性能提升,因为它们所做的只是上下文切换。 (执行上下文切换所需的资源实际上可能会恶化性能。)
如果您有一个长时间运行的过程(例如文件I / O过程或计算),您可以使您的应用程序看起来更具响应性。您可以让一个线程执行该任务,同时允许主线程或用户线程返回,以便客户端可以继续工作而不是等待。
答案 1 :(得分:0)
多线程是有用的....
是
答案 2 :(得分:0)
在处理器只有一个核心的时候,多线程意味着伪并行。所以,有些时候处理器会执行一个线程现在,有多处理器系统和具有双核和四核的处理器。所以有真正的多任务处理。