Unity 5 API multi thread safe?

Hi,

Recently I am digging into Threads , the thing I read that Unity APIs are not thread safe.

Though I also read Unity 5 has improved its multi threading jobs, so is that means Unity APIs can now be used in threading?

If not how to interact with Unity APIs with threading ?

There is nothing wrong in using threads.
If you want them to communicate, simplest and quite effective way would be building event queueStack list with event objects - packets.
If you want to process them as fast as update, then something like this will do.

//unity thread
private void Update(){
    myThread.processQueue();
}

//my thread

//your thread which populates *queue* with events.

List<someData> queue = new List<someData>();

public void processQueue(){
    for(int i = queue.Count-1; i >= 0; i--){
        someData d = queue*; //do what you like*

queue.RemoveAt(i);
}
}
Now this is Unity thread synchronized.

Unity 5 does use better threading for dividing his own jobs better like audio and and physic jobs on multiple threads.

The Unity API is still not thread save and can only be accessed from the main tread.

The Unity’s API is not thread safe, you have to execute them in main thread. Well you can try this package on Asset Store will help you to using threading easier. iS.CentralDispatch - a Multi-Threading Framework | Integration | Unity Asset Store
You can simply use only one line of code to start a thread and execute Unity API safely.

Thank you for a great explanation. I was looking online for a similar idea and really appreciate it