JAVA 스레드 사용법 상세 정보
많은 사람들이 JAVA를 공부할 때 라인에 대해 어느 정도 알고 있다. 그러나 우리가 안드로이드 개발을 접촉하기 시작했을 때 라인이 얼마나 중요한지 제대로 발견했다. 본고는 자바 라인에 대한 용법을 모두에게 공유하여 참고하도록 한다.
우선, 여러분은 반드시 라인과 프로세스가 같은 것이 아니라는 것을 분명히 해야 합니다. 프로세스는 무엇입니까?프로세스는 우리가class 파일을 실행해야 하는 것과 같고, 라인이야말로 CPU 자원을 호출해서 실행하는 것이다.하나의class 파일은 일반적으로 하나의 프로세스만 있지만, 루트는 여러 개가 있을 수 있으며, 루트의 실행은 비동기적인 실행 방식이다.
1. main 함수에서 라인을 다시 여는 방법:
예제 코드는 다음과 같습니다.
public class Thread_one {
public static void main(String [] args){
Run run = new Run();
//run.run();// ,
Thread thread = new Thread(run);
thread.start();// , run()
for(int i=1; i<=20; i++){
System.out.println(" i :--------"+i);
}
}
}
class Run implements Runnable{
@Override
public void run() {
for(int i=1; i<=20; i++){
System.out.println(" i :"+i);
}
}
}
2. 라인 중의sleep 방법예제 코드는 다음과 같습니다.
public class Thread_sleep {
/*
*
*/
public static void main(String [] args){
Runone run = new Runone();
Thread thread = new Thread(run);
thread.start();
try {
Thread.sleep(5000);
thread.interrupt();//
//thread.stop();// ,stop , ,
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
class Runone implements Runnable{
@Override
public void run() {
for(int i=1 ; i<10; i++){
try {
Thread.sleep(1000);
System.out.println("-----"+new Date()+"-----");
} catch (InterruptedException e) {
return ;// ,
}
}
}
}
여기서 특별히 한 가지 설명하자면,thread.interrupt();라인의 실행을 중단할 수 있습니다. 상대적으로 stop이 부드럽지만 라인을 닫는 가장 좋은 방법은 아닙니다. 다음은 여러분에게 다음과 같은 방식을 제공합니다.
public class Thread_stop {
public static void main(String [] args){
Runthree run = new Runthree();
Thread th = new Thread(run);
th.start();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
run.setStop();
}
}
class Runthree implements Runnable{
boolean flag;
@Override
public void run() {
flag = true;
int i = 0;
while(flag){
try {
System.out.println(" ----"+(i++));
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public void setStop(){
flag = false;
}
}
다음은 라인에서의 합병과 양보를 간단하게 소개합니다.1. 라인을 어떻게 통합하는지,join () 방법을 사용합니다
예제 코드는 다음과 같습니다.
public class Thread_join {
/*
*
*/
public static void main(String [] args){
Runtwo run = new Runtwo();
Thread thread = new Thread(run);
thread.start();
try {
thread.join();// ,
} catch (InterruptedException e) {
e.printStackTrace();
}
for(int i=0; i<10; i++){
System.out.println(" :"+i);
}
}
}
class Runtwo implements Runnable{
@Override
public void run() {
for(int i=0; i<10; i++){
System.out.println(" :----"+i);
}
}
}
2. 스레드를 양보하는 방법은 다음과 같이 Thread의 yield() 방법을 사용합니다.
public class Thread_yield {
/** CPU
* @param args
*/
public static void main(String[] args) {
Th th = new Th("aaa");
th.start();
for(int i = 0 ; i<=10; i++){
System.out.println(" ----"+i);
}
}
}
class Th extends Thread{
Th(){}
Th(String s){super(s);}
@Override
public void run() {
for(int i = 0; i<=10; i++){
if(i%3!=0){
System.out.println(" "+i);
}else{
System.out.println(" i="+i+" ");
yield();// Thread
}
}
}
}
마지막으로 라인의 우선순위에 대한 질문을 드리겠습니다. 코드는 다음과 같습니다.
public class Thread_priority {
/*
* priority
* Thread 5;Thread 10, 0
*/
public static void main(String [] args){
T1 t1 = new T1();
T2 t2 = new T2();
t1.start();
//t1.setPriority(Thread.NORM_PRIORITY+3);// t1
t2.start();
}
}
class T1 extends Thread{
@Override
public void run() {
for(int i = 0; i<50; i++){
System.out.println(" T1-----"+i);
}
}
}
class T2 extends Thread{
@Override
public void run() {
for(int i = 0; i<50; i++){
System.out.println(" T2"+i);
}
}
}
여러분이 상기 코드를 통해 JAVA의 스레드 메커니즘을 기본적으로 이해했다고 믿습니다. 본고에서 기술한 바와 같이 여러분이 Java 프로그램 설계를 깊이 있게 공부하는 데 도움이 되기를 바랍니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JAVA 객체 작성 및 제거 방법정적 공장 방법 정적 공장 방법의 장점 를 반환할 수 있습니다. 정적 공장 방법의 단점 류 공유되거나 보호된 구조기를 포함하지 않으면 이불류화할 수 없음 여러 개의 구조기 파라미터를 만났을 때 구축기를 고려해야 한다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.