I'm a native speaker of Spanish and I live in Spain, where I teach in English. I don't think I have a "thinking language", but rather two distinct sets of linguistic paradigms to express whatever I'm thinking. For me there's no effort involved in using either of the two languages, so I don't think I'm "thinking" in one and then translating to the other, unless this is happening at some level that I can't be conscious of.

I think it depends on the context. I speak English normally with my English-language friends and colleagues, but express myself in Spanish elsewhere. In the classroom with my Spanish students I can switch between the two without a break. When as a kid I was living abroad with my family, my sister and I were schooled in English and as a result we'd speak together in English or Spanish as the whim took us.

One thing I rarely do, however, is code-switching. I can switch between languages, but not really in the middle of a sentence or a turn of speech. The most interesting example of this I have ever come across is people from Gibraltar, who'll speak English or Spanish, or a curious mixture of the two among themselves.

A funny thing that happens, though, is that although apparently I can keep Spanish and English totally separate, this is not so with English and my third language, French, which I'm not as proficient in. For some disconcerting reason, I speak French with an English accent, which is plain weird for someone who learnt French in Spain.