PHP+shell实现多线程的方法

PHP+shell实现多线程的方法

这里介绍怎样借助shell脚本实现多线程。

先写个简单的php代码。这里为了让脚本运行时间更长。方便看效果,sleep一下。呵呵。先看下test.php的代码:ls

PHP代码:

?


1

2

3

4

5

6

<?php

for
(
$i=0;$i<10;$i++) {

  echo
$i;

  sleep(10);

}

?>

在看下shell脚本的代码,很easy

?


1

2

3

4

5

#!/bin/bash

for
i
in 1 2 3 4 5 6 7 8 9 10

do

  /usr/bin/php
-q /var/www/html/test.php &

done

注意到在请求php代码的那行有一个&符号吗,这个是关键,不加的话是不能进行多线程的,&表示讲服务推送到后台运行。因此,在 shell的每次的循环中不必等php的代码所有运行完在请求下一个文件,而是同一时候进行的。这样就实现了多线程,以下运行下shell看下效果,这里你将 看到10个test.php进程再跑,再利用linux的定时器。定时请求这个shell,在处理一些须要多线程的任务。比如,批量下载时。很好用!

时间: 2024-10-29 19:11:53

PHP+shell实现多线程的方法的相关文章

网络与多线程---OC中多线程使用方法(一)

小编在此之前,通过一个小例子,简单的形容了一下进程与线程之间的关系,现在网络编程中的多线程说一下!!! *进程的基本概念 每一个进程都是一个应用程序,都有自己独立的内存空间,一般来说一个应用程序存在一个进程,但也有多个进程的情况:   同一个进程中的线程共享内存中内存和资源. *线程的基本概念 每一个程序都有一个主线程,程序启动时创建(调用main来启动).主线程的生命周期是和应用程序绑定的,程序退出(结束)时,主线程也就停止了.多线程技术表示,一个应用程序都多个线程,使用多线程能提供CPU的使

Shell中取时间格式方法

Shell中取时间格式方法2007-09-13 15:35常用date的显示格式: date +%F //2007-03-06date +%Y%m%d//20070306 date +%T //23:37:11 //昨天date +%Y%m%d -d "-1 day"//明天date +%Y%m%d -d "+1 day"//上个月date +%Y%m%d -d "-30 day" 时间修改: date -s 06:01:00 //小时:分钟:秒

iOS中有3种常见的多线程编程方法

1.NSThread 这种方法需要管理线程的生命周期.同步.加锁问题,会导致一定的性能开销 2.NSOperation和NSOperationQueue 是基于OC实现的.NSOperation以面向对象的方式封装了需要执行的操作,然后可以将这个操作放到一个NSOperationQueue中去异步执行.不必关心线程管理.同步等问题. 3.Grand Centeral Dispatch 简称GCD,iOS4才开始支持,是纯C语言的API.自iPad2开始,苹果设备开始有了双核CPU,为了充分利用这

多线程的方法和类别

获取名字 * 通过getName()方法获取线程对象的名字 new Thread("xxx") { public void run() { for(int i = 0; i < 1000; i++) { System.out.println(this.getName() + "....aaaaaaaaaaaaaaaaaaaaaaa"); } } }.start(); new Thread("yyy") { public void run()

shell执行三种方法

查看当前shell echo $SHELL grep root /etc/passwd 开头: #!/bin/bash #!/bin/sh ls -l /bin/sh shell种类 cat /etc/shells /etc/init.d/nfs /etc/init.d/crond /etc/init.d/rc.d/rc.sysinit bash --version shell执行三种方法: 1,sh t.s 或者 shell t.s 2,/server/scripts/t.sh 或者 ./t.

java多线程创建方法

1.继承Thread类 2.实现Runnable接口 3.两种实现方法之间的关系 4.实例 sleep是属于Thread类的静态函数. /** * aThread.java * @author cjc */ public class aThread extends Thread { public void run() { for(int i=0;i<10;i++) { System.out.println("The son thread1 is running..."); try

python中得到shell命令输出的方法

python中得到shell命令输出的方法: 1. import subprocess output = subprocess.Popen(['ls','-l'],stdout=subprocess.PIPE,shell=True).commun icate() print output[0] 2. import commands return_code, output = commands.getstatusoutput('ls -l') 3. import os process = os.p

Java并发编程(一) 两种实现多线程的方法(Thread,Runnable)

Java中实现多线程的方法有两种: 继承Thread类和实现Runnable方法,并重写Run方法,然后调用start()方法启动线程.使用Runnable会比Thread要好很多,主要是以下三个原因: (1)Java语言是单继承的,如果继承了Thread类,那么便无法继承其他类. (2)适合多个相同程序代码的线程区处理同一资源的情况. 测试(Thread类) package com.csdhsm.concurrent; /** * @Title: ThreadDemo.java * @Pack

linux shell if语句使用方法 [转载]

最精简的 if 命令的语法是: if TEST-COMMANDS; then CONSEQUENT-COMMANDS; fi TEST-COMMAND 执行后且它的返回状态是0,那么 CONSEQUENT-COMMANDS 就执行.返回状态是最后一个命令的退出状态,或者当没有条件是真的话为0. TEST-COMMAND 经常包括数字和字符串的比较测试,但是也可以是任何在成功时返回状态0或者失败时返回一些其他状态的一些命令.一元表达式经常用于检查文件的状态.如果对某个要素primaries, FI