Directorio artículo
1 implementación de hilos
java5 hace, solamente dos:
Hay dos métodos, a saber, el uso new Thread()
y la newThread(runnable)
forma de la primera llamada directa thread的run
método, por lo que tienden a utilizar Thread
sub-categorías, a saber new SubThread()
. La segunda llamada a runnable
la run
método. clase Thread se heredan e implementar Ejecutable
1.1 clase Thread base
newThread(){}.start()
; Esto indica que la llamada Thread
objeto subclase run
método, newThread(){}
que muestra un Thread
ejemplo de una subclase anónima objeto, la subclase más run
código es el siguiente:
new Thread(){
public void run(){
//代码
}
}.start();
clase 1.2 El Ejecutable
new Thread(newRunnable(){}).start()
; Esto indica que la llamada Thread
sujeto que recibe el Runnable
objeto run
método, newRunnable(){}
que muestra un Runnable
ejemplo de una subclase objeto anónimo, runnable
la subclase más run
código es el siguiente:
new Thread(newRunnable(){
public void run(){
//代码
}
}
).start();
1.3 subproceso del grupo de redacción
De java5
manera de crear inicio de subprocesos múltiples, así como algunos de la agrupación de hebras:
ExecutorService pool= Executors.newFixedThreadPool(3)
for(inti=0;i<10;i++){
pool.execute(new Runable(){public voidrun(){}});
}
//或者另外一种写法
Executors.newCachedThreadPool().execute(newRunable(){public void run(){}});
//或者又有另一种写法
Executors.newSingleThreadExecutor().execute(newRunable(){public void run(){}});
2 parada y suspender métodos
Por synchronized
palabra clave modificada método de sincronización
en contra del uso stop()
, ya que no es seguro. Será liberar todos los bloqueos adquiridos por un hilo, y si el objeto está en un estado incoherente, por lo que otros hilos puede comprobar y modificarlos en ese estado. El resultado es difícil de ver el verdadero problema.
suspend()
Métodos propensas a punto muerto. Llame a suspend()
tiempo, el subproceso de destino se detendrá, pero que todavía mantienen bloqueado antes obtenido. En este punto, cualquier otro hilo puede acceder a recursos bloqueados, a menos que "挂起"
el hilo reanuda la ejecución. 对任何线程来说,如果它们想恢复目标线程,同时又试图使用任何一个锁定的资源
Que dará lugar a un punto muerto. No se debe utilizar suspend()
, pero debe poner un cartel en la clase Thread, el hilo debe señalarse que activa o suspendida. Si el indicador indica que el hilo debe colgar, utilizan wait () ordena que entre en el estado de espera. Si el indicador indica que el hilo debe ser restaurada, a continuación, utilizar un Notify () para reiniciar el hilo.