`Ctrl`+`K`

# 7.3.67. `thread_limit`

## 7.3.67.1. 概要

バージョン 5.0.7 で追加.

`thread_limit` は次の2つの機能を提供します。

> - 最大スレッド数を返します。

> - 最大スレッド数を設定します。

groonga 実行ファイル は `thread_limit` のすべての機能を提供する唯一のGroongaサーバーです。

groonga-httpd は最大スレッド数を返す機能だけをサポートしています。 groonga-httpd の最大スレッド数は常に1です。なぜなら、 groonga-httpd はシングルスレッドモデルを採用しているからです。

Groongaをライブラリーとして使っている場合、 `grn_thread_set_get_limit_func()` と `grn_thread_set_set_limit_func()` でカスタム関数を設定しない限り動きません。 `grn_thread_set_get_limit_func()` でカスタム関数を設定すると最大スレッド数を返す機能が動きます。 `grn_thread_set_set_limit_func()` でカスタム関数を設定すると最大スレッド数を設定する機能が動きます。

## 7.3.67.2. 構文

このコマンドの引数は1つで省略できます:

    thread_limit [max=null]

## 7.3.67.3. 使い方

引数なしで呼び出すと最大スレッド数を得られます。

実行例:

    thread_limit
    # [[0, 1337566253.89858, 0.000355720520019531], 2]

`0` が返ってきたら、そのGroongaサーバーはこの機能をサポートしていないということです。

`max` 引数つきで呼び出すと最大スレッド数を設定できます。

実行例:

    thread_limit --max 4
    # [[0, 1337566253.89858, 0.000355720520019531], 2]

`max` 引数を渡したときは設定前の最大スレッド数が返ります。

## 7.3.67.4. 引数

このセクションではすべての引数について説明します。

### 7.3.67.4.1. 必須引数

必須の引数はありません。

### 7.3.67.4.2. 省略可能引数

省略可能な引数が1つあります。

#### 7.3.67.4.2.1. `max`

新しい最大スレッド数を指定します。

正の整数を指定してください。

実行例:

    thread_limit --max 3
    # [[0, 1337566253.89858, 0.000355720520019531], 4]

`max` 引数を指定した場合、 `thread_limit` は `max` を適用する前の最大スレッド数を返します。

## 7.3.67.5. 戻り値

このコマンドのボディは最大スレッド数になります:

    [HEADER, N_MAX_THREADS]

`max` を指定したときは `N_MAX_THREADS` は `max` を適用する前の最大スレッド数になります。

`HEADER` については 出力形式 を参照してください。