반응형

전체보기 210

[Unity / C#] 인보크(Invoke)

인보크(Invoke) 단순히 게임이 아니더라도 개발을 하다 보면 특정 함수를 일정 시간 이후에 실행시켜야 할 필요가 생긴다. 이럴 때 사용하는 기능이 인보크(Invoke)이다. 인보크는 아주 간단하게 함수의 이름과, 시간을 인자로 받아 그 함수를 받은 인자만큼의 시간 이후에 실행한다. float t; private void Start() { t = 0; Invoke("tryInvoke", 5.0f); } private void Update() { t += Time.deltaTime; Debug.Log($"Now Time : {t}"); } void tryInvoke() { Debug.Log("Invoke 실행!"); } 위의 코드를 봐 보자. tryInvoke() 함수를 Invoke를 사용하여 5초 후에..

OS : Thread - API

학부 수업 내용을 필기한 내용입니다. 필자가 이해를 제대로 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분이 있다면 댓글로 이야기하여 수정하게 해 주시면 감사하겠습니다. pthread_create 함수에 대해 아까 알아봤었다. 다만 아까와는 조금 다른 점이, 실행할 함수에 넘겨주는 인자인데 하나밖에 못 넘겨주므로 구조체를 생성해서 넘겨주었다. main함수에서 구조체 args를 만들고 그 안에는 int a, b의 값이 저장되어있다. 이후 pthread_create로 쓰레드가 생성되고 T1의 Stack에는 args의 주소가 넘겨왔으므로 T1은 main함수의 Stack을 참조해서 값을 받아온다. 그렇다면 T1이 사용하는 것은 자신의 것이 아닌 타인의 스택 이 프로세스는 외부와는 격리되어있지만,..

OS : Concurrency - Race Condition

학부 수업 내용을 필기한 내용입니다. 필자가 이해를 제대로 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분이 있다면 댓글로 이야기하여 수정하게 해 주시면 감사하겠습니다. Why It Gets Worse : Shared Data 공유된 자원이 있을 때 왜 악화될까? #include #include #include "common.h" #include "common_threads.h" static volatile int counter = 0; //mythread() // //Simply adds 1 to counter repeatedly, in a loop //No, this is not how you would add 10,000,000 to //a counter, but it shows t..

OS : Concurrency : 병행성 - Intro(2)

학부 수업 내용을 필기한 내용입니다. 필자가 이해를 제대로 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분이 있다면 댓글로 이야기하여 수정하게 해 주시면 감사하겠습니다. p3.c 파일이 실행되었을 때 흐름에 대해 한 번 보자. Main 쓰레드가 실행되고, 이후 T1, T2가 생성되는데 join을 사용하였으므로 Main은 T1을 waits 한다. 이 과정에서 Main은 Block에 빠진다. T1은 creates Thread1에서 생성되는 시점에서는 READY runs 되면서 Running 이 동안에는 Main은 Blocked 되어있다가 T1이 끝나면서 Ready -> Running 하면서 T2를 실행시켜주고 다시 마찬가지로 Blocked에 빠진다 T2는 만들어진 시점부터 Ready였다가 R..

OS : Concurrency : 병행성 - Intro(1) + Thread

학부 수업 내용을 필기한 내용입니다. 필자가 이해를 제대로 못하고 정리한 경우 틀린 내용이 있을 수 있습니다. 그러한 부분이 있다면 댓글로 이야기하여 수정하게 해 주시면 감사하겠습니다. 실행 흐름이 여러 개 있는데 CPU는 하나 있을 때 왼쪽 Process(t0.c) 실행 흐름이 여러 개 있는 것을 볼 수 있다 메인 스레드가 있고 생성된 T1, T2 쓰레드가 있는데 이렇게 생성된 이유는 Program Code에서 라이브러리 함수를 사용하여 스레드를 생성하였기 때문이다. 결과적으로는 이렇게 하여 여러 개의 실행 흐름을 갖게 되었다. 오른쪽 실행 흐름이 하나 있는 프로세스 둘 다 Address Space 존재 Open File Descriptor 존재 PCB 존재 Program Code에서 main() 실행..

[Unity / C#] 코루틴(Coroutine)

코루틴(Coroutine) Coroutine 코루틴의 사용이유 일반적으로 유니티에서 함수를 호출하면 값을 반환하기 전에 실행이 완료되어버린다. 즉, 함수에서 수행되는 모든 Action이 하나의 Frame에서 발생하고 그친다는것이다. 그렇기 때문에 Update() 같이 프레임간격으로 실행되는 함수안에서 실행하지 않고 단일 호출로 함수를 실행하게 되면? 그 함수는 아마 우리가 기대한 효과를 가질 수 없을것이다. void Fade() { for (float f = 1f; f >= 0; f -= 0.1f) { Color c = renderer.material.color; c.a = f; renderer.material.color = c; } } 위의 코드가 그 예시와 같다. alpha값을 점진적으로 줄이고 싶은..

[Unity / C#] 가위바위보 프로그래밍.

C#을 사용한 가위바위보 구현 요구사항 숫자키(1~3)로 가위(1) 바위(2) 보(3)를 선택한다. SpaceBar를 누르면 선택한 키(가위/바위/보)가 확정된다. 컴퓨터는 랜덤으로 가위 바위 보를 선택한다. 유저와 컴퓨터의 패를 비교하여 승부를 한다. 승부결과를 알린다. (유저기준) 전체 코드 using System.Collections; using System.Collections.Generic; using UnityEngine; public class RSP : MonoBehaviour { enum Hands { none = 0, Rock = 1, Scisscors = 2, Paper = 3, } Hands user_hand = Hands.Rock; // 유저가 낼 손 Hands com_hand =..

[구글 에드센스] 광고 게재 제한이 적용되었습니다.

갑자기 구글 에드센스에서 메일이 왔습니다. 게시자님의 애드센스 계정에 광고 게재 제한이 적용되었습니다. 안녕하세요. 최근 게시자님의 애드센스 계정에서 무효 트래픽 문제가 확인되었습니다. 그에 따라 게시자님의 계정에 광고 게재 제한이 적용되었습니다. 이 제한은 Google 에서 계속 계정의 트래픽을 모니터링하면서 자동으로 검토 및 업데이트됩니다. 이 조치가 취해진 이유 게시자님의 계정에서 광고 수익을 올리기 위해 잠재적인 무효 트래픽을 사용하고 있다는 사실이 확인되었습니다. 거듭 말씀드리지만 무효 트래픽은 애드센스 프로그램 정책에 따라 엄격히 금지됩니다. Google 광고 클릭은 사용자의 관심에서 기인한 것이어야 하며, 게시자가 자신의 광고를 클릭하도록 다른 사용자에게 요청해서는 안 됩니다. 이러한 행위에..

카테고리 없음 2022.03.03
반응형