写一个shell脚本demo 要求创建两个线程,线程1,间隔1s打印hello 与自己的tid,线程2间隔2s打印hi,与自己的tid
时间: 2023-09-13 17:04:25 浏览: 50
以下是一个简单的Shell脚本demo,它使用了Bash内置的`sleep`命令和`echo`命令来实现:
```
#!/bin/bash
function thread1 {
while true; do
echo "Hello from Thread 1 (TID: $$)"
sleep 1
done
}
function thread2 {
while true; do
echo "Hi from Thread 2 (TID: $$)"
sleep 2
done
}
thread1 &
thread2 &
wait
```
在这个脚本中,我们定义了两个函数`thread1`和`thread2`,它们分别打印不同的消息,并使用`sleep`命令来控制两个线程的时间间隔。然后我们在脚本的最后使用`&`符号来将两个函数作为后台进程执行,并使用`wait`命令来等待它们的结束。
注意,`$$`符号可以获取当前进程的PID,因此在这里我们使用它来获取线程的TID。
相关问题
生成一个shell 脚本 要求创建两个线程,线程1每个1秒输出hello1,线程2每个2秒输出hello2
好的,下面是生成的 shell 脚本,你可以直接复制使用:
```bash
#!/bin/bash
function thread1 {
while true
do
echo "hello1"
sleep 1
done
}
function thread2 {
while true
do
echo "hello2"
sleep 2
done
}
thread1 &
thread2 &
```
这个脚本定义了两个函数 `thread1` 和 `thread2`,分别代表两个线程。在函数中使用了一个无限循环,每次循环输出一条字符串,并延迟一定时间后再次循环。最后,启动两个线程并在后台运行,线程会一直输出指定的字符串。
生成一个shell 脚本 要求创建两个线程,线程1每个1秒输出hello1,线程2每个2秒输出hello2,10秒之后关闭线程1
好的,下面是生成的 shell 脚本,你可以直接复制使用:
```bash
#!/bin/bash
function thread1 {
while true
do
echo "hello1"
sleep 1
done
}
function thread2 {
while true
do
echo "hello2"
sleep 2
done
}
thread1 &
thread2 &
sleep 10
kill $(jobs -p)
```
这个脚本与上一个脚本类似,不同的是加入了关闭线程1的逻辑。在主线程中,先启动两个子线程,并在后台运行。然后使用 `sleep` 命令等待10秒钟后,使用 `kill` 命令关闭所有后台进程,即关闭线程1。注意,`jobs -p` 命令可以获取所有后台进程的 PID,通过 `kill` 命令可以向指定进程发送信号,从而关闭进程。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)