Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
api.de.harbour [2013/05/01 09:57] – iozuniga | api.de.harbour [2022/02/07 17:03] (actual) – editor externo 127.0.0.1 | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | ===== HB_threadStart( < | + | ===== HB_threadStart( < |
Inicia un nuevo hilo. Retorna un puntero al hilo recien creado | Inicia un nuevo hilo. Retorna un puntero al hilo recien creado | ||
- | == Ejemplos: | + | ** Ejemplos: |
// usando puntero a la funcion (puede ser publica o estatica) | // usando puntero a la funcion (puede ser publica o estatica) | ||
Línea 18: | Línea 17: | ||
hb_ThreadStart( {|| funcion() } ) | hb_ThreadStart( {|| funcion() } ) | ||
- | ===== hb_threadSelf() -> < | + | ===== hb_threadSelf() -> < |
Retorna el puntero al hilo de ejecución actual. NIL si es llamado desde el hilo principal de la aplicación. | Retorna el puntero al hilo de ejecución actual. NIL si es llamado desde el hilo principal de la aplicación. | ||
- | ===== hb_threadId( [ < | + | ===== hb_threadId( [< |
Retorna el identificador del hilo (número) de ejecución actual. | Retorna el identificador del hilo (número) de ejecución actual. | ||
- | ===== hb_threadJoin( < | + | ===== hb_threadJoin( < |
Espera a que termine un hilo de ejecución y en la salida el segundo parámetro que es pasado por referencia recoge el valor de retorno Del hilo. | Espera a que termine un hilo de ejecución y en la salida el segundo parámetro que es pasado por referencia recoge el valor de retorno Del hilo. | ||
Línea 38: | Línea 37: | ||
Intenta matar un hilo de ejecución. | Intenta matar un hilo de ejecución. | ||
| | ||
- | == Nota:== | + | < |
- | Es muy recomandable que sea el programador el que establezca mecanismos para terminar los hilos de forma limpia. | + | |
===== hb_threadTerminateAll() -> NIL ===== | ===== hb_threadTerminateAll() -> NIL ===== | ||
Línea 49: | Línea 47: | ||
Espera a que terminen todos los hilos de ejecución. Sólo debe de llamarse desde la aplicación principal. | Espera a que terminen todos los hilos de ejecución. Sólo debe de llamarse desde la aplicación principal. | ||
- | ===== hb_threadWait( < | + | ===== hb_threadWait( < |
Espera a que terminen los hilos de ejecución indicados (puede ser una matriz de hilos). El segundo parámetro indica el máximo tiempo a esperar a que terminen en segundos (se pueden usar decimales). Un valor -1 indica que espera indefinidamente. Retorna el primer hilo terminado, el número total de hilos terminados o el valor cero si no se cerró ninguno. | Espera a que terminen los hilos de ejecución indicados (puede ser una matriz de hilos). El segundo parámetro indica el máximo tiempo a esperar a que terminen en segundos (se pueden usar decimales). Un valor -1 indica que espera indefinidamente. Retorna el primer hilo terminado, el número total de hilos terminados o el valor cero si no se cerró ninguno. | ||
Línea 57: | Línea 55: | ||
Permite crear una entidad Mutex. El Valtype() de una variable que contiene un Mutex es puntero. Un Mutex sirve para varias cosas, pero el uso más común es como semáforo aunque también se puede utilizar para suscripción a mensajes. | Permite crear una entidad Mutex. El Valtype() de una variable que contiene un Mutex es puntero. Un Mutex sirve para varias cosas, pero el uso más común es como semáforo aunque también se puede utilizar para suscripción a mensajes. | ||
- | ===== hb_mutexLock( < | + | ===== hb_mutexLock( < |
Marca el Mutex como bloqueado por el thread que llamó a la función. Esta función retorna solamente cuando obtuvo el bloqueo del Mutex. | Marca el Mutex como bloqueado por el thread que llamó a la función. Esta función retorna solamente cuando obtuvo el bloqueo del Mutex. | ||
Línea 75: | Línea 73: | ||
Emite una notificación a todos los threads que esten en espera. Si no hay threads en espera es como si nunca se hubiera ejecutado la función, no se agregan ni quitan notificaciones que esten en cola. Es posible enviar información al thread que espera la suscripción, | Emite una notificación a todos los threads que esten en espera. Si no hay threads en espera es como si nunca se hubiera ejecutado la función, no se agregan ni quitan notificaciones que esten en cola. Es posible enviar información al thread que espera la suscripción, | ||
- | ===== hb_mutexSubscribe( < | + | ===== hb_mutexSubscribe( < |
Inscribe al thread para ser avisado de una notificación. Si hay notificaciones pendientes, sale inmediatamente, | Inscribe al thread para ser avisado de una notificación. Si hay notificaciones pendientes, sale inmediatamente, | ||
Línea 81: | Línea 79: | ||
El thread que notifica, puede enviar una información en el momento de notificar la cual será recibida como tercer parámetro de la función de suscripción. Retorna un valor lógico verdadero si ocurrió la notificación y falso en caso de finalizar por timeout. | El thread que notifica, puede enviar una información en el momento de notificar la cual será recibida como tercer parámetro de la función de suscripción. Retorna un valor lógico verdadero si ocurrió la notificación y falso en caso de finalizar por timeout. | ||
- | ===== hb_mutexSubscribeNow( < | + | ===== hb_mutexSubscribeNow( < |
El funcionamiento es similar a la función Subscribe(), | El funcionamiento es similar a la función Subscribe(), |