自身のスレッドを一定時間停止させるには

Go言語

3秒停止する例

package main

import "fmt"
import "time"
//import "os"
//import "io/ioutil"

func main() {
    fmt.Printf("Start\n")

    // 3秒停止
    // ナノ秒単位で指定
    time.Sleep(3000000000)

    fmt.Printf("Finished\n")
}

Java

Signature:

// java.lang.Thread
static void sleep(long millis);
static void sleep(long millis, int nanos);

3秒間停止する例

try {
    Thread.sleep(3000);
} catch (InterruptedException e) {
    ...;
}

PHP

3秒間停止する例

sleep(3);
# または
usleep(3000000);

sleep は秒単位でしか使えない。

sleep関数 | PHPマニュアル
http://www.php.net/manual/ja/function.sleep.php

usleep関数 | PHPマニュアル
http://www.php.net/manual/ja/function.usleep.php

Python

3秒間停止する例

import time

time.sleep(3)

秒数に浮動小数点数も使え、1秒未満の停止もできる。

Ruby

3秒間停止する例

sleep 3

秒数に浮動小数点数も使える。

引数を省略すると永久にスリープする。

PerlのようにSIGALRMを渡しても起きずに、Rubyスクリプト自体が終了してしまうみたい。

Perl

3秒間停止する例

sleep(3);

引数を省略すると永久にスリープし、SIGALRMを受け取ると再開するようになる。

1未満の浮動小数点数を指定しても自分の環境ではスリープしてくれなかったが、以下のコードだとスリープしてくれる。

# 100ミリ秒スリープ
select undef, undef, undef, 0.1;

このコードの意味は自分はあまり理解していないが使っている。

sh (シェルスクリプト)

3秒間停止する例

sleep 3

自分の環境では1秒未満も指定できた(Ubuntu 13.10 で確認 [2014/05/29])。

ただ、環境によっては整数でしか機能しないみたい。

# 100ミリ秒スリープ
sleep 0.1

JavaScript

スレッドを停止するわけではないが、一定の時間を経過してから開始すべき処理がある場合には setTimeout を使える。

// 3000ミリ秒後に関数が呼び出されるように指定
setTimeout(function(){
  ...
}, 3000);
このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。