标签: multithreading

如何在bash shell脚本中启动两个线程?

我试图从复制文件machineBmachineCmachineA,因为我上运行我下面的shell脚本machineA

如果文件不在那里,machineB那么它machineC肯定应该在那里,所以我会先尝试复制文件machineB,如果它不在那里,machineB那么我会尝试从machineC.

我正在使用 GNU Parallel 库并行复制文件,并且工作正常。目前我正在并行复制两个文件。

目前,我正在使用 GNU 并行复制PRIMARY_PARTITION文件PRIMARY夹中的文件,一旦完成,然后我使用相同的 GNU 并行复制SECONDARY_PARTITION文件SECONDARY夹中的文件,因此它现在是顺序的 wrtPRIMARYSECONDARY文件夹

下面是我的 shell 脚本,一切正常 -

#!/bin/bash

export PRIMARY=/test01/primary
export SECONDARY=/test02/secondary
readonly FILERS_LOCATION=(machineB machineC)
export FILERS_LOCATION_1=${FILERS_LOCATION[0]}
export FILERS_LOCATION_2=${FILERS_LOCATION[1]}
PRIMARY_PARTITION=(550 274 2 546 278) # this will have more file numbers
SECONDARY_PARTITION=(1643 1103 1372 1096 1369) # this will have more …
Run Code Online (Sandbox Code Playgroud)

linux shell bash scp multithreading

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

与进程相关的堆栈是什么意思?

Unix 环境中的高级编程一书中我阅读了以下关于类 Unix 系统中的线程的行

一个进程内的所有线程共享相同的地址空间、文件描述符、堆栈和进程相关属性。由于它们可以访问相同的内存,因此线程之间需要同步访问共享数据以避免不一致。

作者stacks在这里是什么意思?我做 Java 编程并且知道每个线程都有自己的堆栈。所以我对这里的共享 stacks概念感到困惑。

process java process-management multithreading

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

哪些系统调用可以创建一个新进程?

ps在我的 Linux 系统中执行命令时,我看到一些用户进程两次(不同的 PID...)。我想知道它们是新进程还是同一进程的线程。我知道标准 C 库中的一些函数可以创建一个新进程,例如fork(). 我想知道当我执行ps命令时,哪些具体函数可以使进程出现两次,因为我正在查看创建新进程或线程的源代码。

process embedded fork multithreading

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

使用 bash 并行运行 python 脚本 200,000 次

我需要运行我的 Python 脚本 200,000 次。是否可以使用 bash 进行并行执行?由于它是 200,000 次,我想同时使用至少 10 个线程

bash python multithreading

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

了解上下文切换的开销成本

我总是读到/听说上下文切换的成本很高。我最近开始阅读 Robert Love 的“Linux 内核开发”,并完成了“进程和进程调度”一章。这让我对不同进程和线程之间的上下文切换成本有了一些了解(因为线程被视为进程)。我想解决这个问题,真正了解上下文切换的成本,最好是粗略地了解指令数量和时间损失。

为了简单起见,我们假设一个单核处理器正在运行两个具有相同良好权重的进程(proc1 和 proc2)。另外,假设目标延迟为 20 毫秒,因此每个进程的调度时间为 10 毫秒。当context_switch发生时,我假设当context_switch发生时,proc1 被挂起。此时proc2也暂停了?那么这是否意味着活动进程是某个内核线程或进程?如果是这样的话,这是否意味着 proc1 和 proc2 都无法在 Targeted_latency 内获得 10 毫秒的运行时间?例如(数字仅用于演示):

+-----------20ms-----------+

|---proc1---|--|---proc2---|
^____9ms____^__^____9ms____^
             |
            2ms of kernel executing context_switch()
Run Code Online (Sandbox Code Playgroud)

如果发生这种情况,从一个进程到另一个进程的context_switch()最终是否会调用context_switch()两次?一次从内核线程进入proc1,然后另一个从内核线程进入proc2

scheduling kernel multithreading

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

crontab 是多线程的吗?

我不知道在哪里可以找到有关 crontab 的更多信息,所以我在这里问。crontab 是多线程吗?它是如何工作的?

linux cron multithreading

3
推荐指数
2
解决办法
4625
查看次数

“cat”命令可以使用多进程吗

我需要在具有 8 个内核的 unix 机器上的目录中合并一堆文件。我正在寻找一种快速的方法来合并这些文件。cat 命令只使用一个核心......有没有办法让它使用多个核心进行并行处理。

cat multithreading

2
推荐指数
1
解决办法
2956
查看次数

在网络上的计算机上运行 C++ 程序

我有一个多线程的 C++ 程序。我相信如果我可以在通过交换机连接的其他计算机上运行它,吞吐量会增加。所有这些都使用相同的操作系统(Ubuntu)。有什么方法可以在不更改代码的情况下做到这一点吗?如果我需要更改代码,我应该寻找什么?

networking ubuntu c++ multithreading

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