java 스레드에 대해 질문 드립니다.
혁민
완벽한 클래스는 기억이 안나 잘 모르겠습니다. 뼈대만 구성해 보겠습니다.
class NoThread
{ int i;
public void run()
{
for문{}
}
}
public class ThreadTest
{
public static void main(String[] args)
{
_________________________
___________________________
}
내용의 요지는 이렇습니다. 맨처음 공통클래스에서 extends Thread 를 사용하지 않고
메인클래스에서 어떤 방식을 사용하여 저 공통클래스가 Thread 방식으로 저장 출력이 되야 하는건데요.
그 방식이 어떤건지를 잘 모르겠습니다. 얼핏 듣기로는 메인클래스에서 Runnable로 뭘 생성해서 Thread안에 생성된 참조변수를 대입
어쩌고 저쩌고 하면 된다... 라고 는 하는데... 도무지..ㅡ.ㅡ;;;
아~ 물론 클래스 이름이 NoThread 인 만큼 그 옆에 extends Thread 를 넣으면 안되구요..
답변좀 부탁드립니다..ㅠㅠ 설명이 후지더라도 미워 말아주세요...
-
먹딸기
찬님... 저 뼈대를 구성으로 찬님이 하신 방법을 사용 클래스 하나만 만들어주시면 안될까요? 제가 따로 만들어서 찬님 말씀대로 적어봤는데 도무지 안되어요.ㅠㅠ
-
비치
음... 태클인생님이 하신 말씀은? class xxx implements Runnable 해서 새클래스를 만들란 이야기인 건가요?
-
하늬
대충 적어 보면
main() {
NoThread nt = new NoThread();
new Thread() {
public void run() {
nt.run();
}
}. start();
요렇게 해도 되겠지요?
extends를 하면 안되겠지만, 그냥 사용하는건 괜찮다고 했으니.. 흐흐..
태클인생님의 말이 맞는것 같네요 ^^ -
솔관
위에 코드를 정확하게 수정하면
SwingUtilities.invokeLater(new Runnable() {
public void run() {
new NoThread().run();
}
}
뭐 대략 이런식인데요..
Swing을 사용하지 않는다면, SwingUtilities를 사용하면 안되겠지요. -
맞손질
음.....이게 답변이 될지는 잘모르지만 비슷한게 있어서 한번 적어봅니다.
SwingUtilities.invokeLater(new Runnable() {
new NoThread();
});
예전에 처음 main프로그램을 실행할때 이렇게 thread화하여 프로그램을 하곤했었는데 이게 도움이 될지 모르겠네요... 좀더 살펴봐야할듯......기억이 가물가물해서...ㅎㅎ -
초코초코해
클래스를 하나 더 만드는건 아니었어요. 그 문제 내용이요. 메인클래스 안에 밑줄 친 부분에 NoThread 클래스가 스레드로 구현될 수 있도록 적는 문제였거든요. 그러니까 문제가 저 위처럼 되어있고 밑줄 친 부분에 채워넣는거였어요. 문제지를 제출해서요.;;; 완벽한 클래스 내용이 생각이 안나네요..;;
-
두루
extends Thread가 아닌 implements Runnable 사용하시는 말씀인것 같은데 제가 알기론 역시 클래스를 하나 만들어야 되는 걸루 알고 있구여 대신 이건 상속이 아니라 인터페이스를 사용하는걸로 class 클래스이름 implements Runnable 시키구여. 대신 메인에서 예)NoThread nt = new NoThread 하고
Thread t = new Thread(nt); t.start() 이렇게 해야될껀데여