최근 에 만난 스 레 드 문제
스 레 드 를 사용 할 때 스 레 드 동기 화, 스 레 드 안전 등 문제 가 있다 는 것 을 알 지만 만 나 지 못 했 고 주의 하지 않 았 습 니 다. 결국 최근 의 프로젝트 가 만 났 습 니 다.
최근 부 총 은 작은 스 크 립 트 를 만들어 주 고 다른 주 소 를 요청 하 며 전달 매개 변 수 를 통 해 서로 다른 페이지 를 엽 니 다. 데모 만 하면 됩 니 다.그러면 간단 합 니 다. 50 줄 을 넘 지 않 고 js 를 설정 하지 않 고 action 을 바 꾸 었 습 니 다.그 에 게 html 를 건네주다.이날 제 시 된 수 요 는 다음날 제출 했 는데 고객 이 만족 하지 않 았 다.
버 전 2. 세 페이지 를 동시에 열 어야 하고 세 페이지 사이 에서 전환 해 야 합 니 다. 반나절 동안 완성 해 야 합 니 다. 좋 습 니 다. 원래 의 시스템 을 보 았 습 니 다. 간단 한 수정 코드 를 통 해 완성 할 수 없습니다. js 는 익숙 하지 않 고 비교적 많은 자 료 를 조회 해 야 합 니 다.그럼 다음 처리 로 해 보 세 요. 결과 가 없습니다.결국 C 로 하기 로 했 어 요.COM 구성 요소 몇 개 를 사용 하여 브 라 우 저의 탭 을 가 져 와 순환 전환 이 완료 되 었 습 니 다.그러나 시간 이 초과 되 어 당일 에 완성 하지 못 했 고 잔업 하 는 사람 이 없어 서 다음날 그 에 게 맡 겼 다.
분명히 버 전 3 이 있 을 것 입 니 다. 설정 파일 을 추가 하여 여러 그룹 전환 을 실현 하고 시간 을 스스로 제어 해 야 합 니 다.
분명히 버 전 4, 버 전 5 가 있 습 니 다. 좋 습 니 다. 이렇게 많은 해 동안 개발 한 끝 에 수요 변경 이 이렇게 빈번 한 것 을 만 났 습 니 다.그리고 부지불식간에 테스트 없 이 접속 하 다 니 문제 가 생 겼 다.
우선 여러 스 레 드 가 하나의 집합 을 동시에 읽 는 것 은 상 관 없 지만, 동시에 Add 와 Remove 를 할 때 오류 가 발생 할 수 있 습 니 다.자 물 쇠 를 추가 해 야 합 니 다. 자 물 쇠 를 추가 할 때 이 부분 은 다른 동료 에 게 주 었 습 니 다. 두 스 레 드 를 실행 하 는 방법 을 모두 잠 갔 습 니 다. 마지막 으로 한 가지 방법 만 실 행 될 것 입 니 다. 그러면 조합 전환 탭 을 바 꾸 면 한 가지 만 실 행 될 수 있 습 니 다.
간단 하지만 잘못 보고 하면 바로 고 칠 수 있 습 니 다. 앞으로 도 이런 간단 한 문 제 는 코드 를 처음 쓸 때 처리 해 야 합 니 다.
관건 적 인 것 은 모든 사람 이 수 요 를 제기 하 는 것 이 다 릅 니까? 아니면 신중 해 야 합 니까? 절 차 를 어떻게 해 야 하 는 지, 문 서 를 필요 로 하 는 지 반드시 제출 해 야 합 니 다. 계획 과 같은 것 은 미리 설명 하고 주동 적 인 것 을 파악 해 야 합 니 다.
집합 을 동시에 조작 하 는 방법 은? list.Add();list.Remove();
자물쇠
static void Main(string[] args)
{
Thread t1 = new Thread(OneToTen);
Thread t2 = new Thread(HundredToTen);
t1.Start();
t2.Start();
Console.Read();
}
/// <summary>
/// 100 109
/// </summary>
private static void HundredToTen(object obj)
{
lock (c)
{
while (true)
{
for (int i = 100; i < 110; i++)
{
Console.WriteLine(i);
}
}
}
}
/// <summary>
/// 0 10
/// </summary>
/// <param name="obj"></param>
private static void OneToTen(object obj)
{
Thread.Sleep(10);
lock (c)
{
while (true)
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine(i);
}
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
AS를 통한 Module 개발1. ModuleLoader 사용 2. IModuleInfo 사용 ASModuleOne 모듈...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.